|
Managing Software Development and QM Complexity OK, so your programmers are estimating, and they’re still running behind. At this point, we need to dig a little deeper. Are the requirements properly defined, and did the programmers take the time to draft a design when estimating? If not, they’re probably under-estimating because they did not decompose the requirement into low-level design tasks needed to fulfill the requirement. By getting into the weeds of the design, you can really start to estimate better. Scope creep is another common issue. You start off with a design, start coding, and then someone comes up with some cool enhancements to the feature. So, you try to fit that coolness into the same work schedule when, instead, you should re-estimate the work based on the new features to ensure that they will still fit within your time constraints. If they don’t, let the cool feature wait.
Finally, some people are just not good at estimating tasks. You have optimists that like to think they can get more work done than they really can (I fall into that category), and some pessimists that sand bag by putting out huge estimates to cover their butts. Both of these issues are detrimental to a project, so determine who estimates well and who doesn’t. Find ways to improve their estimating skills. In addition, consider why projects take so long in the first place. Whatever the circumstance, six months is too long to finish a software project. Projects like this suffer from what I call the elephant syndrome: How do you eat an elephant? One bite at a time. Hopefully, you don’t choke. Staffing or quality issues may have caused delays, which I’ll address later, but most likely, you bit off more than you could chew. Fixing this is quite easy. Instead of trying to deliver a complete software product with all the bells and whistles, break it down into manageable, short releases (no more than two weeks in duration) with a specific and pragmatic set of features and scope.
This approach is called an “iterative” approach to software development, which the agile community made especially popular. The truth is that iterative development predates Agile. Iterations were first suggested in the classic development process work by Winston Royce in defining the lifecycle that became known as Waterfall. You can also use an iterative approach with Waterfall development where you fully define all requirements up front, code, and then test in a staged approach. Or you can use agile development where only the tasks that fit within an iteration are completed. In my personal experience, agile development lends nicely to solving this problem (iterations are called sprints), but it can certainly be done with an iterative Waterfall approach. Bottom line: Undertake less work and finish quicker. I can imagine your wheels turning as you are thinking about building a security system, contact listing, contact maintenance screens, reports, dashboards, email functionality, and import and export features–the list goes on forever. Stop stressing! In the first iteration (or sprint), build just the contact listing and the ability to add or edit a contact. Forget about security, auditing, ability to delete contacts, etc. Focus on the bare necessities. The juicy stuff can come later.
In fact, you may even be inclined to start gold plating the contact listing. You might dream up ways to allow in-place editing, print preview, file attachment capabilities, and many other flashy enhancements. Those are all cool ideas, but let those features materialize in future iterations. If you are developing this for internal use, your team could actually start using the bare-bones model after the first iteration allowing you to receive immediate return on investment, and, more importantly, feedback from your customers.
About the Author Steve Miller is vice president of ALM Solutions at SmartBear Software. Steve has more than twenty-six years of experience managing software development and testing teams.
Set as favorite
Bookmark
Email this
Hits: 1520 Trackback(0)Comments (1)
|
|
... And if anyone is interested in a quick overview of ALMComplete (for Agile projects), here is a video clip: http://smartbear.com/videos/al...mplete.wmv Best, Alex |
|




If you’ve worked in software development and/or quality management (QM) for many years, you’ve probably found yourself in all kinds of thorny situations when it comes to managing the software development lifecycle. In my twenty-six years in this profession, I sure have, and I have the bruises to prove it. Missed deadlines, buggy releases, upset customers, and cranky bosses drilling me on why I didn’t foresee and proactively plan for these issues. Taking from those lessons learned, this article addresses a few of the challenges that you may face when implementing application lifecycle management (ALM) strategies.
