Recently I created a software project estimation sheet in Excel, and I wanted to share it with our blog readers.
This tool captures some of the thought processes I use when I’m going about the estimation of a software project for our clients. It isn’t exact of course, as to do a true project estimation you need to go line by line through each feature and calculate the actual time needed to do the task. But if you’re not a developer, and you can’t answer the line by line estimates, this tool may allow you to answer “business level” questions about a project and gain an understanding of the costs.
To gain access to this tool, please enter your email address in the form below, and it will be emailed to you. Also, look below the form for a walk-through video I made where I explain my thoughts behind each field on the sheet, and what it means. If you prefer to read rather than watch, a transcript of the video is below as well.
Hi folks, and thanks for downloading our estimation tool from our website. Thought I would go over this tool with you real quickly. Ultimately this tool is a way for you to learn to become a better estimator as well as for you to get some numbers on what a project might cost. I think it’s important to talk about the different items in here so you can understand what they mean and how maybe they can be added to the way you think about estimation on things that you’re working on on your side as well.
I have the estimation sheet here in front of me. I’m just going to go through these real quick and talk about why I added them and what they mean. Obviously this one, does your system have an iPhone app? Does it have an Android app? This is meaning when you look at your overall system, web back end, desktop apps, iPhone apps, Android apps, web front ends, what pieces are in that architecture? Typically, iPhone development takes quite a bit more effort than Android development. Depending on who you ask, that can be twice as much effort, maybe 50% more effort. People might disagree, but that’s just a general rule that it can be a little harder to work in that environment. That’s why that’s the case.
You can answer yes or no here in that box to say whether or not you have an iPhone app. Let’s say that in this case we do. Does it have an Android app? We’ll say no for that. Does it have a web interface? This would be is there a user interface that is web-based? These numbers are really all just determining at a base level how complex the system is. Does it have a Windows or Mac desktop interface? This would be something that runs as a thick client that you install and download on your desktop like Microsoft Word, in the same way that you install Microsoft Word, or Excel, or any other program that runs thick. We’ll say no in that case.
Does it need a touch interface? Definitely requires sometimes some additional work to make an interface work well with touchscreens. Mainly it’s just because of having to deal with things like the size of the buttons, size of text boxes, things like that. If it’s all keyboard and mouse driven, you don’t have to worry about that as much. We’ll say no in this case. Is it an existing code base that we or some other developer would be taking over? If there’s a bunch of code that already exists, somebody’s got to figure out what that code does and how it works, so that takes extra time. We’ll say no in this case.
Those were all the high level attributes. Now we go into process attributes. This is more “what does the system do?” What’s the number of screens the system has? That’s a very rough way to estimate – a system with 10 screens typically takes longer than a system with one screen. Not always, but sometimes. Let’s says this has 10 screens. That would be 10 web interface screens. Let’s say seven web interface screens and three iPhone app screens might be another way to think of that.
How many different APIs will the system talk to? (That’s application programming interfaces.) If you’ve got some other third party system that you want to integrate with or move your data from that’s not just a standard database, that’s where this would go. We’ll say in our case we don’t have any APIs to talk to. In terms of just development process, how many times a month would you want to meet? Typically, we’re doing two week sprints, so milestones and meetings every two to three weeks. Sometimes people want to meet more often than that and say, “Well, we have a weekly meeting that we want everybody to be in,” so that’s why we put that here. Let’s just say a standard two meetings.
How many reports do you think the system will have? Obviously, some reports might take a small amount of effort, some might take a large amount of effort, but you’re going to have a number to start with. We’ll say there’s four reports in this system. On a scale of 1 to 10, how complex are the business rules of the data in the system? This is a very subjective thing, obviously, but I guess it’s your gut feel. If you think that it sounds really straightforward to you, you could say a one, or a two, or a three where it’s just reading and writing some values out of a database. If you know that it’s a system involving some kind of engineering automation or some kind of graphical auto-generation of graphics or something like that, that’s probably more business logic, same as if you were doing a lot of OCR or some other kind of system like that. That could be more complicated. Let’s just say this is middle of the road, it’s a five.
Number of roles in the system? That’s different roles for those users, for those 500 users we talked about. Is it two roles, three roles? Let’s say it’s three roles. How important is graphic design? Are you really picky about graphic design, or do you not care if this whole thing is black and white and just looks like this Excel sheet does? Let’s say that we’re a four there.
Specific features, there are some specific features that can add complexity to a project no matter how they’re implemented. Video is one. Will it work with video, editing video, playing video, storing videos? Let’s say no. Barcoding, does it deal with any kind of barcoding? Again, you might have issues of a failure to recognize barcodes and handling that, integrating with some kind of barcode library that can handle that recognition for you. That can add complexity. Let’s say no. There’s obviously a lot more things that could be in this list of feature attributes, but this is a high level list.
Does it work with OCR, optical character recognition? Let’s say no. Do we need to integrate it with some other platform, SharePoint, WordPress, something like that? Do we deal with electronic signatures in this, collecting them, storing them, burning them into documents? Let’s say yes, that this system does, we’re going to capture those from an iPhone app. Are we going to generate documents on the fly with this system? Let’s say yes, we’re going to burn that signature into the PDF, let’s say. Does it deal with HIPAA protected information? If it does, there’s a whole lot of security concerns and extra steps you need to take in the system to make sure that you’re being HIPAA compliant. That’s why this is a question. We’ll say no. Does it deal with financial or credit card information? That might require PCI compliance, that sort of stuff, which again is additional work and complexity. We’ll say no in this case. Do we need to charge credit cards? That’s really just working with a payment gateway. We’ll say no.
Just as a question as far as servers, do you own your own servers this system would run on? That helps us determine how much effort would be involved in us getting access to things. Do we need to VPN into your system? Again, sometimes that’s just a human workflow of getting access like we should have.
You can see this gives you an estimation here, and you can go back and tweak and fiddle with numbers. Gives you some contact information. That’s what each of these metrics means. If you’re working on estimating a project and you’re a developer, I would encourage you to think about some of these items as you’re coming up with your estimates if you’re using this Excel sheet for those purposes. If you’re a business owner or executive or manager and you’re using it to come up with a guess, obviously these are rough numbers, these project costs. They could be way over, they could be way under. An Excel sheet is not a perfect way to capture this sort of thing, but it’s at least some sort of a general inaccurate idea of things. You can get an idea of how much would HIPAA compliance, if we added that to the system, what kind of cost does that add in a general way, what kind of cost does document generation add. You can tweak and look at those numbers based on that.
I hope it helps you. There’s also a link in the email I’ll send to this sheet if you don’t have it anymore. You can download it again, and feel free to share it. Thanks.