October 2005
M T W T F S S
« Sep   Nov »
 12
3456789
10111213141516
17181920212223
24252627282930
31  
Chris Donnan

Create Your Badge

Chris Donnan : Programming – Brooklyn Style

software, trading, family, fun

Agile Project Leadership stuff

An article in this month’s Software Development Magazine has gotten me thinking about what it means to service clients effectively. At the end of the day – that is the end game – to service a client in a way that will make them want to let you service them again.

From the Agile Project Leadership Network

Core Principles (on the Project Leadership front)

In order to consistently deliver successful results, great project leaders embrace the following practices:

·             Relentlessly Focus on Value. Focus efforts on generating organizational value rather than managing tasks.
·             Be Situational Specific. Use situationally specific strategies, not a one-size-fits-all approach.
·             Manage Uncertainty. Manage uncertainty through client focused collaborative exploration and proaction.
·             Continuously Align to Changing Situations. Choose strategies for leading within a dynamic environment.
·             Lead with Courage. Confront reality with conviction and a dedication to purpose.
·             Build Strategies that Leverage People. Challenge team members with opportunities to grow professionally.
·             Design Strategies Based on Teamwork. Develop and sustain a collaborative team environment.
·             Communication Through Immediate and Direct Feedback. Maintain control through feedback, not prescriptive plans.

From the Declaration of Interdependence

·             We increase return on investment by making continuous flow of value our focus.
·             We deliver reliable results by engaging customers in frequent interactions and shared ownership.
·             We expect uncertainty and manage for it through iterations, anticipation, and adaptation.
·             We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference.
·             We boost performance through group accountability for results and shared responsibility for team effectiveness.
·             We improve effectiveness and reliability through situationally specific strategies, processes and practices.

Both of these were quoted in this month’s Software Development Magazine and it got me to thinking. What are the real core things that we are trying to achieve for clients? How do we do these things? What is a reduced – short list of our goals for clients and the means to do it?

  • Focus on increasing ROI/ Value for the client - this must be the topmost item. If this is not achieved, all is lost. As an organization employing an agency – you will never do so again with the specific vendor. As a vendor, you will never get back into that client and word will spread that you cannot provide value.
  • Exercise situational specificity – We can improve effectiveness in general by being agile with processes and practices – within bounds. Processes and practices can change and be adapted to the specific client’s need. This is somewhat of a slippery slope- altering process and practice too much can become – chaotic. That being said, organizations are all different. Situations vary. Circumstances happen. I think that certain things are like religion however… Sometimes people get caught up in religion and basically lose the ideas that are presented by the religion. At the end of this road – you have people rigidly following some religion construct – and missing the things that the originator(s) of the religion intended. Process and practices I believe can be the same – people get so accustomed to the process that they become it’s slave. This is of course the worst case scenario, but I believe that to some extent – this is partially the case in many places. We must simply be able to understand what we are trying to accomplish with our agile methods – and utilize the tools that are presented by the many frameworks for agility (XP, Scrum, Crystal, etc) and be flexible with our clients.
  • Manage and expect uncertainty – THINGS CHANGE. Difficult software issues come up that could not have been foreseen. Resources come and go. New products come out. Requirements change. Organizations have re-orgs. Project owners change. There are so many possible points of uncertainty that it is irresponsible to NOT expect uncertainty. This uncertainty is to some degree manageable as long as it is expected and not ignored.
  • Teamwork/ Leverage People/ Group Accountability – People, People, People – individually and collectively. Teams are amazing. Teams – the whole exceeds the sum of the parts. That being said; teams can also have the ‘Babe Ruth’. Teams can certainly have people that can hit home runs in their areas, the best teams certainly have these superstars. Superstars – together in a supportive – interdependent group of other team players is just plain powerful. When people feel supported – they feel empowered. When people are smart and empowered, they will be immensely creative and yes – innovative. As long as the team is coordinated – the team players will be able to bring home a project that all players are proud of. This makes people want to come to work. People that want to come to work – do great work. At the same time – the client will actually get a piece of software that is actually maybe innovative! The likelihood of this situation winning is huge, compared to a situation when the stars are not allowed to shine, and there is no (or even weak) teamwork.
  • Continual feedback with client – “client focused collaborative…”, “engaging customers in frequent interactions…” This point is crucial. The need to have continual visibility with the client and to have frequent releases is just key. This is an excellent risk management tool for software projects. Clients will have changes – when there is an environment when feedback is EXPECTED – you will get good feedback. If feedback is expected on a monthly basis, then clients will be more open to allow those requests to wait till a ‘comfortable juncture’ – it will never be > 1 month away. The feedback loop can effect process and practice, it can also effect the requirements, it can also give the client more actual value when they are amidst the project. The feedback process allows the real opportunity to increase the value of the software to the client.

Whatever the ‘method’ being applied – learn the things that the agile camps are trying to sell – these items listed above!!!! Accomplish these goals with your clients. Vary as needed – but the processes and methods that are out there HAVE already made solutions to many of these issues. Do not just pick and choose pieces from the agile camp – take an actual method – craft it to your way of doing business and just be flexible enough to not let the process run you – but make the process help you to increase the value to the client, manage the risk/ uncertainty and just plain deliver excellent software that people are proud to have been a part of.

Enough of my Babel….
-CD


You can leave a response, or trackback from your own site.



1st Day at Finetix

Well, today was my 1st day at ‘the new gig’; Finetix. While not too much went on, I will say that it was interesting nonetheless.

One of the main things that attracted me to Finetix is that they seem to basically try to only get technically ‘heavy hitters’. That is exactly the modus operandi that I had for years. It is certainly possible to ‘throw’ 40 mediocre developers at a project – then get 20 or so middle managers, follow-uppers and other ‘helpers’ to make the project close. This is of course unfortunate for many reasons. You get mediocre, hard to maintain software, lots of mediocre documentation and the whole deal is well… mediocre. IF however, you are able to just get the ‘heavy hitters’ to work on your projects, you can reduce the head count needed (you will of course pay more for better developers) and you will get good, maintainable software out of it – with a better chance of getting it delivered in a timely fashion.

Some organizations opt for the former, some the latter. My belief is that you just want to be able to have software that you can maintain, understand and that someone was proud of.It tends to follow that your cream of the crop developers actually care about their work. They take ownership and pride of and in their projects, teams and this is what makes 200% of the difference.

We did have some interesting discussion today about how to present agile methods to your classic CMM level gozillion organization. Many organizations have been doing business as they have for eons – and old habits die hard. Old habits die hard even when the new habit could actually offer compelling bottom line benefits. In any case, it is imperative that tech companies are able to effectively portray the value of agile development mechanisms. The ability to deliver in a measured, more quantifiable way is important and a key selling point in my mind. The ability to manage the overall risk of a project by having frequent deliverables that you can see and touch is also key. It seems that it is just a question of presenting the benefits in a way that is comprehensible to the business at hand.

Anyhow – wife is out of the shower – I am off to real human interaction.

-CD


You can leave a response, or trackback from your own site.



Your Favorite Math/Logic Riddles

Your Favorite Math/Logic Riddles


You can leave a response, or trackback from your own site.



Excellent Lean Software Development Excerpt

“Project managers have four variables that they can adjust when managing

projects: time, costs, quality, and scope. From these four variables, fix time,
cost and quality, but not scope. Prioritize features, but don’t specify in the
contract the fixed set of features to be delivered. Move from a fixed scope to a
negotiable scope*: By delivering high priority features first, it is likely that you
deliver most of the business value long before the customer’s wish list is
completed.”

An excellent excerpt from : Lean Software Development (PDF)

This is just so important. The Agile school is of thought is just so spot on here. It is just so important to be able to get software out the door to the end users in an iterative and incremental fashion. It is just stated so nicely here  – there are 4 parts time, quality, cost and scope. You must simply order the features – the rest is REALLY fixed anyhow – weather or not the stakeholders WANT the scope to be fixed or not is just not really important – it really CAN’T be (that well at least).

Anyhow – good snippet.

-CD


You can leave a response, or trackback from your own site.



Last day at PCH

Today is my last day at PCH. I will say that I have learned a bunch here and that I will miss all the people. As a Lead Software Architect at PCH – I have been able to hire lots of great developers to work for me. I have also been able to take on some very challenging projects. I think that in the end – I really did not like commuting to – or living in Long Island. I also can say that I really did like building applications for the web that need to service millions and millions of people. They have 2 web sites in the top 100 – both of which were rewarding and challenging to manage over a  few years. Another facet that I really enjoyed was working on the internal facing desktop applications. We were able to really remodel workflows, business practices and ways of doing business – and it helped the business. I think that the modeling process – understanding the business and modeling it in software is also extremely exciting and something that the team here was able to do amazingly well. Another thing that I am proud of from my time here is how well we developed our process, methodology and standards. We were able to work out what we have referred to as a ‘Scrum Derivative’. We were able to move to a methodology that was agile, yet organized. We could take requirements (user stories, prioritized and scored) and make effective plans that we could deliver on. I love the idea that software teams can get highly tuned and execute repeatably at a high level of complexity…. That whole thing is just great – Live, in Tune, and on Time!

Anyhow – I wish all my former folks the best and I know there are many genuine friends that I will keep in touch with.

So long PCH…


You can leave a response, or trackback from your own site.



Cool data from Cantor

I spent a bunch of time trying to make rolled up views of Depth of Market data for futures markets. This cantor product is just cool.

Trying to make all that data visible is hard to do. I still believe that type of data needs to be rolled up more, normalized and looked at in a way that makes it actionable, but – these guys have sure come up with a cool view for DOM Data.

-CD


You can leave a response, or trackback from your own site.



New job….

Wow  ~4.5 years of being with Publishers Clearing House – it has been great.

  • Built 2 top 100 on internet web sites
  • Built 1/2 million LOC SmartClient app.
  • Manage > 1 million LOC of pure C# code over several years.
  • Hired many excellent developers
  • Learned immesurable amounts from my peers, superiors and everone else I saw on the day-to-day

That being said – it was time to change things up for various reasons – so… Now I look forward to starting with Finetix real soon. Wish me luck!

It is hard to take a new position when you are comfortable. It is hard to leave a team you spent years building. It is hard to trade comfort and offers of more comfort for more work, the need to re-prove yourself etc. The bottom line is that, as I have often said “If you are too comfortable – you are not learning”. So – bring on the learnin’


You can leave a response, or trackback from your own site.