Menu Close

One Day and One Month…Estimating Complexity

Author Note: This is a re-post of an article I originally wrote for Medium in January, 2018. Hope you enjoy! – Mark T.

I recently estimated a new software project for one of our clients. The system will be custom-built, and will handle some very unique requirements. As President and “Estimator in Chief”, this is a critical part of my job. I also pulled in our tech team for their opinions.

We asked ourselves the usual questions…

  • Did we budget enough time?
  • Who can do this work?
  • What about competing priorities?

Yet we still needed to answer the most important question…Where are the pitfalls? If this thing can fail (which we all know it can), where will the failure occur? In other words, how much time should we allow to understand and plan for complexity?

Understanding complexity is a critical first step in any technology project. The good news is we have the right equipment to do it! The human mind has a tremendous ability to deal with complexity, and to expect the unexpected.

Our team identified the following questions to help deal with complexity. We recommend building time into each critical project task to contemplate these questions…

  • Does this solve the problem?
  • Should I be solving this problem?
  • What happens downstream if I make this decision?
  • What are the possible side-effects?
  • Why? (and then ask “Why” again!)

As an example, let’s consider the design of a simple app to control the lights in my home. I first need to install hardware enabling each light for wireless connectivity. I will then build an app to identify each light by its location or function. Finally, the app will include an online toggle switch to turn the lights on and off.

But why stop there? I can add scheduling, alerts, personalization, failure detection, utilization monitoring, and much more. My simple app to control the lights is now becoming a major project!

Let’s say I’m a developer tasked with building the Scheduling Subsystem. I start by developing a calendar tool allowing me to update the On/Off status of each light throughout the day. Seems simple enough. But let’s go through the analysis to see where problems may occur:

  • Does this solve the problem? Yes, the app enables me to schedule lighting changes in advance, and also on a recurring basis . This is a good start!
  • Should I be solving this problem? Let’s say I also designed a timezone management function for my Scheduling Subsystem. This feature will convert “local time” to “lighting time”, simplifying user control from outside the target time zone. This seems like a great idea, but not necessary for Phase 1. Taking extra time to focus on the core problem helps to avoid unnecessary complexity. This is especially true early in the process.
  • What happens downstream? Let’s assume there are two different developers. The first developer programs the On/Off Control. Unfortunately they don’t realize the importance of historical data. They store the data in an unstructured format not designed for reporting. The second developer arrives to build Utilization Monitoring. Their options are to work with the messy data, or re-program the data logging routine. A small amount of upfront planning would have made this much simpler!
  • What are the possible side-effects? What if I allow multiple users to sign-on and control the lights in my home? It then becomes possible (and likely) that there will be conflicts. How should the team manage these conflicts? Will a conflict create a text message alert? Can we establish a user-priority to determine who gets control? If so, how many different levels of users do we need? The side-effects of adding multiple users must be carefully considered in advance.
  • Why? (and Why again!): It’s important to challenge your decisions at each step in the project. For instance, If I decide to use a third-party tool for graphics design, why am I using this tool? Does it make my life easier, or does it introduce a significant learning curve? If that’s the case, do the benefits outweigh the risks? If not, you may want to avoid the new technology and consider a simpler approach.

You should always add time in your estimates to understand and plan for complexity. There are no hard and fast rules. The amount of time will depend various factors such as project size and percentage of new code. In our case, we decided to include one extra day per month (roughly 5% of the project) to asking these questions. We’ll let you know how it goes in future posts…Good luck, and keep it simple!

40 Comments

  1. LeKe KrEmi

    Hello I am so happy I found your weblog, I really found you by accident, while I was searching on Digg for something else, Nonetheless I
    am here now and would just like to say thanks a lot for
    a tremendous post and a all round enjoyable blog (I also love the theme/design), I don’t have time to read through it
    all at the moment but I have book-marked it and also included your RSS feeds, so when I have time
    I will be back to read a great deal more, Please do keep
    up the superb job.

  2. Lenovo laptop kuwait

    I’ve been exploring for a little bit for any high-quality articles or blog
    posts in this sort of area . Exploring in Yahoo I eventually
    stumbled upon this website. Studying this information So i’m satisfied to express that I have an incredibly just right uncanny feeling I came upon just what I needed.

    I so much certainly will make sure to don?t put out of your mind this web site and provides it a glance
    on a continuing basis.

  3. best THC vape carts

    Have you ever considered publishing an ebook or guest authoring on other sites?
    I have a blog based on the same information you discuss and would love to have you share
    some stories/information. I know my visitors would enjoy your work.

    If you are even remotely interested, feel free to shoot me an email.

    Also visit my web site: best THC vape carts

  4. weed edibles

    Thanks for your personal marvelous posting! I genuinely enjoyed reading it, you are a great author.
    I will remember to bookmark your blog and will often come back from now on. I
    want to encourage that you continue your great writing, have a nice weekend!

    My web-site weed edibles

  5. buy weed

    Hey there would you mind sharing which blog platform you’re
    working with? I’m going to start my own blog in the near future but I’m having a difficult time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most blogs and I’m
    looking for something completely unique.
    P.S Apologies for getting off-topic but I
    had to ask!

    My homepage … buy weed

  6. Damion

    Hey I know this is off topic but I was wondering if you knew of any
    widgets I could add to my blog that automatically
    tweet my newest twitter updates. I’ve been looking for a plug-in like this for quite some time and
    was hoping maybe you would have some experience with something
    like this. Please let me know if you run into anything.
    I truly enjoy reading your blog and I look forward to your new updates.

  7. chó con poodle đáng yêu

    Does your blog have a contact page? I’m having trouble locating it but, I’d like to shoot you an e-mail. I’ve got some creative ideas for your blog you might be interested in hearing. Either way, great blog and I look forward to seeing it grow over time.

  8. Web chăm sóc vật nuôi

    Thanks for sharing excellent informations. Your web site is very cool. I’m impressed by the details that you’ve on this website. It reveals how nicely you perceive this subject. Bookmarked this web page, will come back for extra articles. You, my pal, ROCK! I found simply the info I already searched everywhere and simply couldn’t come across. What an ideal web site.

  9. invisalign login

    I’m not sure where you are getting your information, but great topic. I needs to spend some time learning much more or understanding more. Thanks for wonderful info I was looking for this info for my mission.

  10. Christen

    I’d like to thank you for
    the efforts you’ve put in penning this blog.
    I’m hoping to check out
    the same high-grade blog posts by you
    in the future as well. In truth, your creative
    writing
    abilities has encouraged me to get my very own blog now

  11. Chó Poodle

    An interesting discussion is worth comment. I think that you should write more on this topic, it might not be a taboo subject but generally people are not enough to speak on such topics. To the next. Cheers

  12. sıra bulucu

    Sitenizin sıralamasını merak ediyorsanız Türkiye’nin en basit arayüzüne sahip sıra bulucu sitemize göz atabilirsiniz. Tamamen ücretsiz ve kullanımı kolay google sıra bulucu sitemize göz atabilirsiniz.

  13. Pdf indir

    Türkiye’nin en büyük pdf arşiv sitesi sayesinde en güncel kitapların en güncel pdf dosyalarına ücretsiz bir şekilde erişip indirebilirsiniz. yüzbinlerce ktiabın pdf dosyalarına sitemiz üzerinden ücretsiz şekilde indirebilirsiniz.

  14. pdf kitap indir

    Türkiye’nin En Güncel Pdf Kitap İndir arşivi sitemiz üzerinden yüzbinlerce kitabın ücretsiz pdf dosyasına erişebilir rahatlıkla indirebilirsiniz. Pdf İndir kategorisinde Türkiye’nin en büyük pdf kitap arşivine ait sitemiz 2014 yılından itibaren siz değerli üyelerimize ücretsiz bir şekilde hizmet vermektedir.

  15. houston junk car buyer

    Just wish to say your article is as astonishing.

    The clearness on your submit is just nice and i could think you’re a professional on this
    subject. Well along with your permission allow me to take hold of your RSS
    feed to keep updated with impending post. Thank you 1,000,000 and please keep up the rewarding work.

Leave a Reply

Your email address will not be published.