Calculating Development Capacity

by Steve Ciske 7. April 2010 00:05


273250_18086064 Anyone who writes code is always interested in the capacity (or load) that their system can handle.  For some, including this author, it’s a matter of pride and bragging rights.  However, there is a different type of capacity that is normally overlooked.  When was the last time you estimated your team capacity?

Your team capacity is as equally as important as system capacity.  Team capacity determines how much work you’re getting done and, at the end of the day, how much value you’re giving to your customers.  I think that most folks automatically assume that their team capacity is some magical number calculated based on the number of people that work on the team multiplied by a ‘hours per week’ number.  Although this isn’t entirely incorrect you might be short changing yourself.

So to start, let’s talk about what factors go into team capacity planning.  There’s the obvious, availability of the team.  You can’t factor forty hours a week if your team is also dedicated to other tasks.  What about complexity of the tasks?  There are methodologies out there that can help you plan for that.  What’s missing from the equation?  Simple, budget, talent and infrastructure.  Let’s take a brief dive shall we?

Budget

Most projects have budget constraints.  However, you need to weigh your available budget with time.  I think most people think that if you have 5 FTE’s (Full-time employees) working for six months on a project and it takes up the entire budget you’re probably doing better than most.  What if you have 2 FTE’s and 3 contractors that complete the work in 4 months but still fit within your budget?  What about 2 FTE’s and 3 contractors and it still takes six months?   Is it worth it?  Now you have freed up 3 additional FTE’s!  You now have just added to your team capacity.  You actually end up retaining intellectual property because of your FTE’s, but get the work completed by augmentation.  The pitfall is that typically a contractor will always cost you more.  So you need to figure out what the difference is between time and cost in order to take advantage. 

Infrastructure

Infrastructure is the key to making budget and talent work.  When I talk about infrastructure I’m talking about your team’s ability to ramp up an outside resource.  You need to ask questions like:  How long does it take to setup our environment?  How long does it take for them to understand our architecture?  What software will they need to complete the work?  I’ve seen a lot of talent and budget wasted on this over the years.  If you want to increase team capacity you should focus on the ramp up.  And not just for augmentation, but for your own team as well.  Either way a solid infrastructure adds to your team capacity.

Talent

Talent is probably the most important aspect when considering team capacity.  I’ve spoken about budget and infrastructure.  However, if you don’t have the talent to manage ‘additional capacity’ then you might as well have stopped at paragraph one.  If you follow budget and infrastructure than you need someone to help you manage the additional ‘capacity’.  This is where you need to invest in the team.  Based on my experience, a good senior level technical person can manage three to four staff augmentations (read contractors).  Again, the benefit is that you keep the intellectual knowledge in-house, but increase capacity at the same time.

Conclusion

So what is your true team capacity?  By factoring in talent, budget and infrastructure you can dramatically raise your team’s ability to meet your goals.

Y,X and Boomers Oh My

by Steve Ciske 2. March 2010 21:25


clip-image004 Technology, as a profession, is an interesting social experiment.  You can have a front row seat to just about every stereotype imaginable.  Introverts, extroverts, passive aggressive know-it-alls.  They are all contained in this microcosm known as Information Technology.  What I’m finding fascinating of late is the interaction between the generations.

In the interest of full disclosure I’m near the end of Generation X as defined by the greatest source of useless information on the web. 

So what am I seeing?  A greater disconnect between the Boomers and Gen Y.  I think for most folks this probably isn’t much of a surprise.  However, I’m in this precarious position called management.  I have Baby Boomer bosses who come in at the crack of dawn and wonder where all the ‘coders’ are.  I have Gen Y that comes in at 10 and stay until midnight and wonder why all the ‘bosses’ have gone home.  And this is probably the simplest example I can think of.  And if your like me, a Gen X’er, your stuck in the middle as a translator for both sides!  At times this can be a challenging position because you need to be somewhat more conservative in your approaches with Sr level staff, but you also need to build and nurture a team of folks that will become the future of your IT organization.  And god forbid if either side sees you fraternizing with the other!

This sounds like a rant.  However, I’ve had a chance to put some perspective between my initial observations and some recent experiences.  As a Gen' X’er I get the best of both worlds.  I get the experience and guidance from the Boomers who actually have seen it all (even Fortran).  I get the Gen Y’ers that have grown up consuming technology and believe anything is possible and everything SHOULD be easy.  And what do these folks get from this Gen X’er?

Let’s take Your experience and Your enthusiasm and do a start-up.  Seriously, we can IPO in a year.

Categories: Funny | Management | Strategy

Positioning For an Economic Upswing

by Steve Ciske 22. February 2010 21:05


541212430_073f891623 The last few year have been terrible.  It doesn’t matter what industry you’re in, your education level or place of residency.  The latest economic down-turn has been rough on all of us.  However, there are signs of an upturn and you need to be prepared for it.  How do you position your teams to respond and meet the demand of your business?  Getting smart about outsourcing might be the key!

The next upturn is going to present a few realities that you will need to come to terms with.  The first, is that  your company has ‘right-sized’ your organization at some point.  Translation, you have less resources than you did before the bust.  The second is that the economy is starting to pick-up.  Translation, you will lose talent.  The third, and most important, is that your company will want to be ahead of the curve and implement technologies and products so that they can gain the most by the upswing. 

The challenge as an IT manager is how do you ‘ramp-up’ for the upswing?  You will face the challenge of fleeting talent as well as increased demand.  You need to develop a resource strategy that is scalable and forgivable.  So what is the solution.  Outsourcing.

Outsourcing is probably the one word that will have all IT pros see red.  I think it’s a natural reaction giving the recent experiences of most IT pros.  However, now is the time to leverage the ‘right-size’ outsource solution so that you can continue to meet the demands of your company’s IT demands and best position your team.

So what is this mythical outsourcing phenomenon I speak of?  It’s coming to the realization that you don’t have enough team capacity nor the time or energy to meet the current needs.  You don’t want to bring on full-timers that you will have to layoff  when the demand levels off, you owe your employees more than that for sure.  So now is the time to start to develop outsourcing relationships.  And make no mistake.  These arrangements are relationships. 

Develop Level 1 Outsourcing

Phase one of an outsourcing relationship is simple.  Get some contractors in that your team manages.  Not all firms love this arrangement, but guess what, the economy is tough and they will do it.  The benefit is that you can release or add contractors as your demand requires.  You don’t have to lay anyone off, and the vendors begin to learn what your standards are and what you expect.  You can also use this to see what the strengths and weaknesses of each vendor are.  I call this the ‘getting to know you phase’.  The main advantage is that you can increase the capacity of your team without having to hire an FTE.

Develop Level 2 Outsourcing

This level is a bit more challenging and requires you to have a level of trust.  You have gotten to know a vendor and now want to outsource a project because your team just does not have the capacity to complete it when the business needs it.  It is critical that you make this distinction.  This is not about cost savings, it’s about increased capacity.  Your team needs to have tight control, good project definition and good management in place.  When considering moving to this stage I recommend giving a vendor the easiest or best defined project you have.  At this point your success is tied to theirs and theirs to yours.  I recommend managing risk though the statement of work, verifying work with your own QA resources and assigning your own technical resource to oversee the project. 

The best strategy when negotiating this: Fixed Bid.  Why fixed bid?  Fixed bid is a shared risk.  Each party has skin in the game.  They want to make a profit, you want the project completed.  It puts you and the vendor in a shared  risk relationship. 

Develop Level 3 Outsourcing

I know what you are thinking, level 3 outsourcing is complete project outsourcing.  Something I’ve learned through trial and error is not an optimal solution.  Level 3 is all about reducing cost and freeing up resources.  It’s not project driven.  When you get to level 3 you should be looking to outsource the remedial tasks that your full-time staff does day-to-day. Also known as application maintenance.  At level 3 you want to move maintenance to a lower cost resource so your internal resources can continue to spend time managing Level 2 while keeping IP in-house!

The economy is picking up.  Now is the time to start implementing these strategies!

Iceberg Test: Staffing a Technical Team

by Steve Ciske 28. January 2010 21:30

 

Interviewing technical people can be challenging.  What is the right mix of experience and ambition?  What level of expertise do you need?  I’ve built several technical teams and I will tell you that the ‘magic’ always starts with the core team.  These are the folks that will set the standard for your team.  So how do you find these folks?

Iceberg Test

There are thousands of books out there that discuss interviewing techniques.  All guaranteed to help you find the perfect candidate.   The main issue I find with these techniques is that they are perfectly inept at discovering true IT talent.  So what makes a candidate a great find?  A passion for technology.  This can take many forms.  Some candidates blog.  Some are always learning new technologies.  And others have ‘side interests’, read: side businesses.  

The most difficult thing about interviewing candidates is pulling this information out.  I think most people are taught as young adults or professionals that talking about your external interests during an interview is taboo.  I disagree.  As a hiring manager I want to see that you live, breath and consume your profession.  And for me, finding out about your outside work is pivotal in that determination.

This is how I came up with the iceberg test.  Based on my experience a solid technologist will only have about a third of their relevant experience represented on a resume.  The challenge is to find out if there exists a layer of experience that is not represented.  If you have the good fortune to come across a technologist that passes the iceberg test I would highly recommend you seriously consider extending an offer.

Building For The New Generation Of Users

by Steve Ciske 23. November 2009 19:19


I’ve recently been reading a few articles about the future of application development and IT infrastructure management.  I believe that one of the main issues that face most IT pros is that we get caught up in the buzz word factory.  Today’s latest: Cloud computing, Web 3.0, etc.  What we fail to realize when we speak about the future of our architecture is the changing dynamic of our end users.

We, as a profession, need to realize that the end user is really what keeps us working.  It used to be that the goal of any application was to cater to the least common denominator, the weakest user.  If we could get that person to be productive and make less mistakes while using the software we wrote, then it was a success.  I believe that the paradigm has shifted.

I attend meetings every day where a user has created an application using Excel or Access.  Typically these applications have a degree of sophistication that amazes me given the lack of formal training and IT processes.  I’ve come to realize that most of the folks that work on these have ‘grown up’ in a technology enabled life.  I’m not just talking about 20 something's here.  The level of sophistication spans all generations.  For example, my father called me the other day to inform me that he updated his weather station so that it automatically FTP’s data to his website.  We are talking about a guy who no less than five years ago would ask me how to configure his email account. 

As a technologists we need to start thinking about embracing this trend.  We need to stop thinking about the lowest common denominator and begin thinking about how to enable users to ‘mash up’ or create their own technology solutions.  We can see this trend in BI trends. Analytic capabilities are being pushed to the end user.  No longer is a static report acceptable.  Users need and want the ability to drill through data, create their own reports and share with their peers.

Perhaps we, as technologists, need to re-explore the promise of SOA.  Not as core architecture, but a way for end users to plug-in, utilize the centralized logic and resources so they can leverage tools to make applications that work for them.

My advice for IT pros and lowest common denominator of users is the same: Adapt, or become obsolete.