My customer recently asked me if my current coding assignment is difficult.  I believe his exact question was, “On a scale of 1 to 10, how technically difficult is this project?”  If you have been in the software development business for more than 2 hours, you know this is a loaded question.  Quickly reply with “It’s highly technical and super hard” and you may be perceived as being over-your-head or even incompetent.  If you say “It’s super imageeasy” the customer may wish to speed up the product delivery or wonder why your code hasn’t been delivered already.  Say anything in between and, well, your client may think you’re keeping something from them.

Fortunately for me, I’ve built up a good working relationship with my client (who’s a very reasonable guy) and I have gained trust through regular status and deliverables.  We’re both happy with the current state of the project and therefore I took the question as he merely being curious.  I have given the benefit of the doubt and I don’t believe the question was loaded at all.  Time will tell…

Notwithstanding, as uncomfortable as the question is when coming from your customer, project manager or project lead, it is still a great question to ask yourself.  A number of factors should play into your answer but I’m willing to bet there’s an aspect of your effort which factors in the most.  For example, my biggest factor is the sheer number of components.  If you have worked with me for any duration of time, I hope you know I keep my architecture as simple as possible at all costs.  My ego doesn’t like it but my tiny brain and my clients tend to thank me for it.  Though I whole-heartedly stick by the architecture I’ve put in place for my current effort, it is made up of a dizzying number of components — certainly more components than the typical, single-developer, 3-month assignment. Specifically, I am hosting a web application, web service and a SQL 2005 DB.  I am also distributing a Windows application, Windows service and a third party application to client machine’s using custom installers.  The web site features online order/purchasing and reports using Adobe Flex.  All development (other than Flex) is using .NET 3.5 Framework and I’ve opted to use WPF for the Windows application.  With the exception of Flex (which I’m hoping goes away soon) and WPF, it’s all stuff I’ve done before although it has been an awfully long time since I built a desktop application.  Each piece of this puzzle isn’t overly difficult on it’s own, but collectively I think this solution is quite complex.  If I could, I would dumb it down, but I can’t.  I simply have to acknowledge the complexity and mitigate what I perceive as a risk.

So, on a scale of 1 to 10, how technically difficult is your project?  If it’s high, is there anything you can do about it or are you kind of “stuck” like me?