Managing a remote software development team is challenging. Managing an outsourced remote software development team with a 10-11 hour time difference is near impossible! Or at least that’s what I thought when I was tasked with making this happen several years ago. This article outlines some of the process-related challenges and solutions that I’ve dealt with over the years.

Challenges

The obvious challenge here is the small time overlap that falls at the end of your development team’s day and the beginning of yours. Making the most efficient use of this time is critical to ensure the success of your team. In addition, you want to make sure your team has as much information as possible as any questions / issues can end up costing you a day or two in lead time to get the right answer back to the developer. We use a flavor of the Agile Methodology for all product development and apply those same principles in our geographically-disconnected team.

Preparation is Key

My main goal at the end of each day is to ensure that the following are true:

  • The team has a healthy queue of work to be picked up as tasks are completed.
  • The queue of work has been discussed with the senior members of the team to ensure understanding of the original requirement.
  • The queue items have sufficient detail on the solution that needs to be built.

Having these things in place sets the team up for success as they start their day while I’m sleeping.

Healthy Work Queue

Tasks in the queue to be worked should be ordered so that the higher priority items are worked first. Prioritization will prevent developers from cherry-picking the “cooler” items over the less exciting issues that need to be resolved. It also makes each member of the team more self-sufficient as they do not need to be tasked directly.

Daily Hand-Off

Our “Stand Up” meeting each morning is actually more like a hand-off between the remote team and the rest of the team based in the US. We use this time to perform the following tasks:

  • Resolve any questions and/or issues that have come up with items currently being worked
  • Discuss any new requirements that are being added to the queue to ensure understanding by the entire team
  • Agree on the solution to those requirements to ensure Development and QA are on the same page with what will be built
  • Quickly demo any in-process work to ensure the implementation meets the previously discussed solution
    • Provide feedback to the developer on anything that might need to be reworked

Our overlap time is valuable, so normal “Stand Up”-type status messages are included in a separate messaging channel (we use Slack) ahead of time so I can review these updates before the meeting. On most days, these text updates are sufficient and require no further discussion. Every day is different depending on what’s going on at the time so we need to be flexible to keep things running smoothly day-to-day.

Embrace Disagreements

Encourage your team to voice their opinion if they do not agree with your designed approach. This discussion is healthy and will ultimately ensure you end up with a more robust solution. Do not be afraid to admit when you’re wrong. Making mistakes is one of the key ways that we learn and help us to get better over time.

Be wary if you are not getting good feedback from the team. The lack of feedback may indicate that the team members are not properly analyzing the work before getting started. The best way to achieve success is to ensure that everybody feels some sort of ownership in product / process.

Tools are Invaluable

If you’re not using some sort of software to manage your work queues, you will need something in place to make this work. Individuals should be able to naturally pull work from a queue as they complete other items. This leaves you time to work with Product Management to ensure those queues have enough well-defined work to keep the team busy each day.

As with anything, your results may vary. We are frequently reviewing our processes and retooling them as necessary. You should too!

[kad_youtube url=”https://www.youtube.com/watch?v=hNuu9CpdjIo” ]

What Would You Say You Do Here?

If you’ve seen Office Space, I’m sure you remember the scene above. It sounds silly, right? The guy just receives customer specifications and takes them to the software developers. Where is the value in that part of the process??

Comedy Based in Reality

In the real world, I believe this guy is the most important person in the software development process. Jokes aside, the person(s) responsible for taking a customer requirement and crafting a solution to meet those needs must do a good job or the entire enhancement / feature risks being built “wrong”.

Solution Design Considerations

There are a few things to think about here as we design the solution:

  • Does the customer really know what they want? Have they done a good job in describing the need?
    If not, we need to go back to the customer and get any outstanding questions resolved first.
  • Do other customers that use the product have the same or a similar need? What about future customers?
    Engage your other customers to get their input. You may be able to solution multiple customer problems with a single feature!
  • Can we build a configurable feature that meets everyone’s needs and also allows for further enhancements in the future?
    Ensure you are thinking about the product as you design the solution. Do not let the customer dictate everything you build or else you may end up with a mess.
  • Have you considered that a customer may not want this new feature at all?
    When possible, make sure each feature can be disabled and allow the customer to decide if they want to enable it.
  • Are you open to collecting feedback from your customer base?
    Let each customer enable the feature in a test environment and get feedback so that you can evolve the new functionality organically.

Additional Reading

My good friend, Rese, has a nice post with additional solution design considerations when building SaaS software. Check it out!

So, I’ve had the Wink Hub 2 for almost a week now. While it does have some nice features, it also has some significant drawbacks that have caused me to continue running my SmartThings 2 Hub within my home network. I’ve decided to continue to run both hubs and use the best features of each hub to do what I want to do. More on that later…

Sonos Support

On my SmartThings hub, I have rules set up that announce throughout my house if one of the exterior doors are opened. I’ve got Sonos speakers in each room that all play the message simultaneously. And I like it. Unfortunately, the Wink hub does not support Sonos at all. So rather than migrating my door sensors over to Wink, I’ve left them on the SmartThings hub so it can continue to function as my home announcement system.

Motion Sensor Grouping

Wink calls their smart apps Robots. It is basically IFTTT but allows you to specify compound rules and resulting actions. The user interface is really slick and I found myself setting up a ton of these rules in no time. But if you have more than one motion sensor in your setup, it forces your apps to trigger off of motion on any of the motion sensors. This will not work if you’ve got motion sensors through your home triggering unique events. The Wink app says that this will be resolved soon, but it is a pretty big annoyance.

Home Assistant Saves the Day

So now that I’m running two Smart hubs, my next question was how to get those hubs communicating with each other. That lead me to discover Home Assistant. Home Assistant is an open-source Python-based home automation application. It is being actively developed and has pretty good documentation on getting everything set up and configured.

I had a Raspberry Pi that I’ve been meaning to do something with, so I took this opportunity to put it to good use. If you don’t mind getting your hands dirty, Home Assistant is amazing! It supports Wink with very little configuration. Getting SmartThings integrated was a bit more difficult, but now I’m able to build fairly complex rules in Home Assistant using events from both hubs. And I think I’ve only scratched the surface on what all it can do.

Connecting SmartThings and Home Assistant

Honestly, you can probably do everything you need to do with Home Assistant. I’m basically using my SmartThings and Wink as bridges to the various networks (Z-Wave, Zigbee, etc) since there is no native support for those networks on the Raspberry Pi. I’m planning on doing a more detailed write-up on Home Assistant later.

Decisions, Decisions

If I had to do it again, I don’t think I would get the Wink 2. It just wasn’t that much of an upgrade from my SmartThings hub after having to deal with the drawbacks. But since I’ve got it up and running smoothly with everything else, I’m going to keep it and I’ll just have another toy to play with. I’m sure the software issues will be resolved over time and only get better.

On a side note, my Google Home should get delivered today and I’ll be playing with that the rest of the weekend!

Today, I finally received version 2 of the Wink Hub. I’ve been a long time SmartThings user having used by version 1 and the current iteration of the hardware hub. I had originally started with the Staples Connect hub (which seems like ages ago) and have a bunch of Lutron switches that I later learned were not compatible with SmartThings when I made the switch. When I saw the Wink 2 would support those dust-collectors, I decided to give it a shot to see how it would fare against my tried-and-true SmartThings setup. Here are my first impressions after un-boxing this bad boy.

Installation

Well, that was easy (Staples pun intended). I guess that is the norm these days with connecting an automation hub. Once plugged in and connected to my router, I installed the Android app and we were off!

Wink Setup

Setup

The app walks you through setting up any existing connected hardware you have in your home. I immediately went with adding my Hue lights since I know those will work with both the Wink and SmartThings at the same time. Once I authenticated with Hue via Google auth, the app just presented me with a spinning icon. I thought it was hung up, but it eventually came back and told me no lights were found. I tried again with the same results. Things are not starting out well so far…

I decided to kill the app and restart. That seems to have done the trick as it immediately detected my new Wink hub. Maybe it was because I signed up for a Wink account in the same session? This time, the Hue hub / lights were added successfully and the app walked me through light controls (as well as a Hue firmware update). Once completed, I was free to control my lights. Light reaction does seem a tad bit slower than it is when I toggle one in the SmartThings app. I’ll see if that continues.

I will also note that I immediately noticed the app is much “prettier” than the ST app. Oh and I can create light groups directly from the app??? To me, that is a huge win over ST as I haven’t been able to find a clean, easy way to make that happen. Hopefully, there are more pleasant surprises coming my way.

Next, I connected my ecobee3 thermostat. That was super easy and connected with no issue.

Pretty much everything else I have is Z-Wave so I will have to remove them from the SmartThings hub before I can play in this new world. I plan to entertain myself with that tomorrow and will update with my progress. Stay tuned!

 

I am a bit bummed that Sonos is not supported. Yeah, I probably should have looked that up before pulling the trigger. I like having every speaker in my house announce when somebody opens / closes the front door (as well as other sound-based automations) 🙂 I’m going to see if connecting the Wink hub to my Home Assistant installation might solve that problem before I rule this one out.

 

As a person responsible for government purchasing, have you ever sat back and thought to yourself, “This is perfect! I have so many great Vendors responding to my proposals that I can hardly keep up! I am really getting some great deals here and saving the public so much money!”

Oh I’m sorry, did I wake you up from a nice dream??

Competition in the Government Vendor Community

When any government agency puts out a significant proposal for bid, not only do they want many Vendors to respond, in most cases the law requires it! Having more Vendors responding increases competition and ultimately results in your agency getting the lowest price possible for the goods or services. It also shows the public that you understand you are spending their money and are doing your best to ensure it is spent wisely.

No matter the need, there are usually a very large number of Vendors that can and would love to give you their business. The difficult part is ensuring that as many of those Vendors as possible are aware of your particular needs. The process to find these Vendors should start well before you need them. Having a good pool of trusted Vendors will make you much more successful when it comes time to solicit their services.

Easier Said Than Done

I know you’d love to channel your inner Harry Potter, wave your magic wand, and those wonderful Vendors would be knocking at your door. Unfortunately as we all know, it’s not that easy. This process requires a bit of effort, but it should not be that difficult. These Vendors want your business, remember? Once you’ve established that relationship, they should be ready for your call when it comes. Just remember to continue to reach out to the community over time so you don’t miss out on new Vendors!

Internet Searches Are Your Friend

So, the easiest way to find new Vendors is the same way you would find anything else on the Internet. Search for it using your favorite search engine! Using the commodity, category, or keywords you should be able to find Vendors out there that will be able to help you with future needs. Once you’ve located them, invite them to register in your purchasing tool. I doubt you will have to ask them twice.

Reach Out Locally

There are a number of ways to find Vendors in your community. Using local Vendors ensures that the public’s money is being reinvested in the local economy so everybody wins! You also stand a higher likelihood of maintaining a diverse group of Vendors.

Recurring Outreach Sessions

Setting up a recurring outreach session each month allows you to stay connected to the community and provides an opportunity for more Vendors to participate over time. It also provides a great forum for Vendors to ask questions about purchasing processes so that everybody ends up being successful. These should be advertised in the local newspaper (some people do still read those!). If the demand is high, you may even want to have sessions broken up by industry. This will allow the session to be focused on specific issues within that industry that may not affect others.

They should also be advertised using all of your social media accounts. If you do not have a social media presence, now is a great time to establish one specific for your government agency! Post and/or tweet often to keep engaged with your base. Here are some hashtags to get you started, but you are only limited by your imagination.

#procurement
#publicprocurement

Use Your Website

Your local website is likely already being used today to expose government services to the public. Why not use this same platform to let potential Vendors out there that there may be opportunities for them? It is easy to do and you already have a user base to see the information. Just make sure you get them to send you their info after you’ve captured their attention! Which leads me to…

Set Up Mailing Lists

Set up a mailing list and allow Vendors to subscribe. You can break it out by industry or keep it simple. Then as needs arise, you simply need to notify the army you’ve collected over time. Competition and great prices are right around the corner! There are lots of online tools out there that will facilitate most of this for you (MailChimp is a great one).

Software-based Approaches

If you already use enterprise-level software to manage to your proposals, then you already know how this works. You create the proposal and let the software take care of the rest. Vendors have already registered in the system and specified the types of goods / services that they provide. All of those Vendors are automatically available to you and are even immediately notified when new opportunities are released. They probably already have a large pool of Vendors that will see your proposals without any additional on-boarding work on your part. In addition, they take care of advertising your requests to the general public and can even have that content embedded in your existing web site.

If you don’t have software helping you facilitate this entire process, you should start looking for one ASAP. There are many different solutions out there suiting governments of all shapes and sizes (though I am a bit partial to one in particular 🙂 ). #webprocure #perfectcommerce

Let’s Do It!

Ideally, you should be following all of the steps that I’ve outlined above to ensure you get as many Vendor proposals as possible. You should also be looking for new ways over time to connect with potential Vendors both in your community and elsewhere. In a future article, we’ll talk about making sure your Vendors are real, qualified, and adding value to your sourcing process.

We’ve all been through it at one point or another…one of your best tools breaks and you don’t have a spare! Now, you need to order another one in order to do your job properly and you need it yesterday. You send a request to the Purchasing Department and tell them what you need. Then, you wait. And wait. And wait. One day when your hair starts to grey, the tool you needed four months ago finally shows up! What gives??

Purchasing Approvals

If your company / department has a budget, then every request for purchase likely must go through some sort of approval process. The approval process for that request may depend on the commodity, price, etc. of each line item. Approvers exist in the organization for each of these approval types and unfortunately, we have to wait for them to approve the request before that budget money can be spent. And since most of the approvals are sequential, the next approver cannot approve until the previous approver gives it a thumbs up. And in some cases where the purchase is large enough, the purchasing department may even be required to source the request from multiple Vendors (which results in even longer delays)!

Only after all approvals have been completed for the request can the Purchase Order be created and sent to the Vendor. How can we speed this process up??

Locate Bottlenecks and Motivate Approvers

In order to get your approval process running more efficiently, you need to determine where you have bottlenecks or inefficiencies that result in delays.

Analyze Your Approval Process:

  • Who is involved in the current review and approval process? Should they be involved?
  • What is being approved (item, quantity, commodity, etc.)? Are the approvals required necessary and appropriate?
  • When are items being approved? Are the approvals received and actioned in the time frame expected?
  • Where do bottlenecks exist? Is it one department, certain users, or across the entire organization?
  • Why do bottlenecks exist? Is it training, awareness, policy, organizational structure, lack of communication?

In order to discover and answer these questions, you need data. Have you heard the saying: “You can’t manage what you don’t measure”? In order to measure performance, you will need to track every step of the approval process so that you can analyze that data and identify non-value steps and improve purchasing cycle times. Once you’ve identified areas for improvement, you can lead your team down a path towards decreasing transaction costs through increased process efficiency.

Software to Automate Your Approval Process

Using automated, electronic approval software will ensure that every step of the approval process is captured. It can also help expedite approvals by notifying and reminding approvers who have approval tasks to complete. I would be remiss if I didn’t include a plug for the WebProcure solution as it provides a dynamic and flexible approval process that will help to speed things up!

Is It Worth It?

For lower value purchases, compare the cost of the purchase versus the time you are requiring for that purchase to be approved. If you’re spending more money in time than the purchase itself, you may be better off skipping the approval process entirely! Consider giving your users a low value spending limit that requires a shorter approval path.

Beware Rogue Spend

If your approval process is too complex, you may inadvertently motivate your users to go out and purchase outside of your fancy system using their P-Card. To discourage this activity, make sure your processes are only as complicated as absolutely required. In addition, try to keep your end users informed of the process in order to help to keep them engaged and less likely to go “rogue”.

Future Considerations

There is a strong opportunity here for further automation based on the analysis of the data obtained above. Chatbots and Browser Notifications are just a couple of newer technologies we will be exploring to make this process even better!

Just in case you didn’t have enough to worry about, the the video below explains that there could literally be a death ray on its way through space right now and we would have no idea until it got here and eradicated the human race. The guy even floats a theory that this may be why we haven’t met any alien life. They’ve all been destroyed at some point by the space death ray!

Space is a wonderful and scary place. Stay thirsty, my friends.

[kad_youtube url=”https://www.youtube.com/watch?v=RLykC1VN7NY” ]

 

noscrubs
While leaving trivia tonight with a few of my female teammates, I experienced my first real-world instance of “hanging out the passenger side of his best friend’s ride trying to holler at me”. 
 
In a seemingly unrelated note, one of the songs in tonight’s music round was TLC – “No Scrubs”.

I think this sheds some light on why “wive’s tales” are so prevalent even to this day. A lot of us know they aren’t true but there are many other people out in the world continuing to assert them as truth causing the myths to perpetuate.

I’ve also noticed that during this election cycle, the candidates say a lot of the same things over and over (regardless of truth). I think this sheds some light on why that happens. The idea is that if you hear the same thing enough times, your brain believes it to be true.

[kad_youtube url=”https://www.youtube.com/watch?v=cebFWOlx848&feature=youtu.be” ]