Constantly changing client needs and the general lack of predictability inherent in software development, can be pitfalls for any project. Unfortunately, using traditional methods of project management that don't take that unpredictability into account can make those pitfalls impossible to navigate.
If you haven’t already, you might consider investing in some agile training in order to more easily navigate the product development process. Agile development makes for a much smoother ride.
You’ve probably heard of “agile” before but the actual methodology often gets obscured by the overuse of the buzzword. Agile is a method of project management that promotes an iterative and incremental process for software development. It works by breaking down projects into small pieces of user functionality, prioritizing them and then delivering them in 2 week cycles called sprints.
The most important part, however, is how this happens. In Agile, the work goals are defined by the team before the start of each sprint and the team designs and prototypes with a representative sampling of customers throughout the process. The lessons learned during each sprint are documented and used in future sprints, allowing for constant improvement of both internal process and the product you are developing.
Here at Yeti we have been using what we call “Agile Development” in order to keep our projects on track and ensure success.
If you aren’t already implementing your own agile development process, you may want to consider investing in agile training.
Breaking down your project into smaller units allows your team to conduct testing and reviews on each iteration - bugs, defects and other problems will be identified and fixed early on. Additionally your retrospectives, in which you discuss the lessons learned during each sprint, will allow your team to continuously learn and improve with each iteration.
We’ve come into product teams that have been spinning their wheels for years trying to figure out the right set of features “to launch with”. By breaking down the project into smaller units and evaluating the value each would bring to a user we were able to soft launch and iterate our way to a public beta in a few months.
With agile everyone, from the client to the development team has the ability to know how the project is going at any given time.
Scrum meetings, Sprint check in meetings and Sprint reports are all tools and practices that ensure everyone involved in the project is on the same page at the same time. When everyone understands the big picture people are more motivated, allowing work to get done more quickly.
We’ve worked with corporate teams where the executive management is untrustworthy of the development team and vice versa. Communication styles are very different amongst these personas so having a clear, transparent and structured way to communicate can alleviate a lot of inter-team angst.
When using agile your product should be tested by real users as frequently as possible. This will give you very valuable insight into how and why users are using your product and will show you exactly which parts of your design frustrate people and where they get confused, allowing you to fix issues quickly and often.
We’ve learned this the hard way many times. No product design is perfect when designed in a vacuum. Early in our history as a company we would launch untested designs and then scramble to fix them after launch when user feedback is pouring in for the first time. Now we test prototypes early and often.
Had we had some agile training from the start of our product development days, we would have been able to prevent a lot of wasted time and money.
Agile makes better use of your team's time. Because work is broken up into sprint’s there is always a milestone and a deadline in the near future, which keeps your team focused, motivated and feeling accomplished. Additionally, your team will be in agreement on what the most important work is and have the ability to move forward in unison, allowing work to be done more efficiently.
At Yeti, we track all of our projects on a board that displays each team’s sprint goal, how many points they have completed and how many points are in progress. Each of our teams gets to update their points completed daily. At the end of the sprint, when a team hits their sprint goals, we congratulate them and celebrate with small motivational prizes.
Despite what many managers think, people want to feel like they’ve accomplished something in their job and being able to show that in black and white is rewarding.
Having the ability to tell your client or boss when something is going to be delivered and at what cost is a valuable skill set. Because each of your Sprints is time boxed, you are tracking the velocity of the project and you have a fully estimated backlog, you can do some simple calculations to be able to accurately predict costs throughout the project.
Yeti lives and dies on its ability to accurately scope and predict projects. If we aren’t managing scope and timelines properly, it’s simple- we get fired. For this reason we are very diligent and run our business by constantly monitoring deadlines and the impact of scope creep on budgets and timelines.
We’ve honed our process to be very vigilant about these things and because of this our clients often tell us that the best part about working with us is the process their team adopts after seeing how we run it.
Agile allows for client/executive involvement and collaboration at every step of the project, providing opportunities for your team to gain a greater understanding of the clients vision as well as their priorities for each sprint. Because you are providing new, working features at the end of each sprint, your client will trust your ability to deliver a great end product.
We have clients with varying degrees of desired involvement. Some of our clients have embedded product managers in our team and others stay informed by weekly health status reports and set strategy with us in the much more occasional Vision Alignment Workshops.
By adopting a true agile methodology, your team and executive stakeholders get a structure set up for success.
Because you are delivering your results early- at the end of every sprint- and receiving feedback on those results, you don’t run the risk of spending hundreds of man hours (and even more dollars) building a flawed product. Additionally, because you are delivering usable features at the end of each sprint, you won’t find yourself with a pile of unusable code, regardless of what may happen in the future of the project.
We’ve heard the most heartbreaking stories from people that have spent multiple years of their time and hundreds of thousands of dollars working on projects with barely anything to show for it.
Whether you are building software internally, hiring a firm, or managing a group of freelancers, developing in a truly agile manner will deliver you a better product and significantly reduce the chances of inflicting the financial and emotional stresses of a runaway project.
If you want to learn more about our Agile Development process, you might be interested in our Applied Agile Ebook.