Wednesday, February 18, 2015
Engaging Entrepreneurs as Employees
Friday, September 27, 2013
the Recipe (Software) & the Quantities (Estimations)
From the seemingly "Unwanted List" of elements of Software Development (from what is otherwise a sort of a creative endeavor), lets discuss Estimations (the Quantities in the Recipe).Like the recipes get perfected over generations, the process of estimation takes a couple of cycles/years to mature.
- amount of detail needed across the various phases of the software development life-cycle is different
- estimation at various levels is done based on the understanding and expertise of the concept, skills and other parameters involved in the building and delivery process
- effort needed (Estimate) and duration to get the software built (Duration) are two different aspects
- unit of estimation (Days/Hours) must not be mis-interpreted
- sum total of All Tasks across All Requirements has to add up to the estimate of the Total Concept
Wednesday, August 28, 2013
Experiencing the Manifesto as you grow Agile
While some take a structured approach to adopt one of the agile software development frameworks, there are many who are looking to find a solution for a specific situation bothering them for a (maybe relatively) long time already.
Aah, there you go.
In the field of Software development there is always some parameter which limits you from re-using an existing piece of software and being able to make a predictable plan of the re-use scenario.
Barring few instances, most cases involve researching, adapting to a certain degree and dealing with certain unknowns. Making a comprehensive plan in such situation(s) asks for (some) room to maneuver.
To relate, let me know share two cases to illustrate the point.
Case 1: A software development organization having experienced success with a set of components that worked in tandem wanted to weave them into an integrated system. The idea was to deliver enhanced business value in a seamless manner. This grand ambition off-course lead to meticulous planning and drained all the available capacity to execute and deliver on this multi-year plan. Apart from the delays and impact due to the re-work of the design and re-planning, as more and more resources got absorbed into the plan, work started piling-up, concerning the support of in-production versions of the components and a huge technical debt. Without an end in sight, something needed to change to get things back in control.
Rather than focusing on detailing all the steps into a plan or finalizing the complete software architecture, it was a brush with working software over detailing.
The new approach did not promise a quick turnaround for all the problems. It helped prioritize the issues and deal with them in an iterative manner. To ensure we stay on course, it was decided to work with the potential users of the software.
This lead to earlier feedback and to keep the software fit for business use rather than having to defend the quality of the software using the contractual clauses.
kicked off and "Responding to change over following a plan" was happening.
All the internal learning while building the software could not get the required attention due to the rigidity in the plan and not enough scope to re-work and improve.
With the move to Scrum, there was more room to process the internal feedback as much as the external inputs. This helped create an environment of collaboration within the teams. Building the software right took as much precedence as building the right software. There was increased involvement from all the stakeholders as the software started to shape-up.
This was a process of discovery of better ways of developing software. This was a multi-year period of learning the nuances of Scrum and improving upon the way software could be built better.
Accepting the change is more important than just sticking to a plan. The world of tomorrow will be different than the world today and hence the plan most likely less relevant. Plan sets a direction and is not set in stone. It needs to be adopted as the execution proceeds further.
When the complexity levels are high, tackling change becomes difficult as all the consequences may not be seen through. Responding to change in such situations might even blur the sense of direction. As you make further steps in this journey, you will come to realize the benefits of working software over detailing, DO over THINK, SHOW over WRITE.
While there was a promise of a certain value in the existing practices, there was more value in the tenets of the manifesto and the Principles behind it.
Monday, February 11, 2013
Author Review - Malcolm Gladwell
Sunday, May 27, 2012
Enabling Offshore Product Development (OPD) - Notes and observations (Part-III)
From a Software Product Development and associated services stand point, the OPD could help in:
- Extending the Product Development stream (Release and Research initiatives)
- Extending the Product Engineering stream (Support and Maintenance)
- Extending the Service Delivery stream (Custom Software and Project based delivery)
Each of the above streams involve a different mix of technical skill(s) and experience background to provide the needed jump-start in the initial phase and sustaining the setup in its journey to the subsequent phases.
To limit the number of variables at play, it is advisable to agree on the various work processes and workflows that will be used in the OPD.
With OPD in its nascent stage, trying hands at experimenting on processes may add further stress in stabilizing the operations.
The existing set of work procedures have proven fit and have undergone the needed refinement over the period and are best fit for roll-out in the new unit. Established practices help in gaining momentum and can be adopted to suit the needs of specific team constructions and/or other aspects of distributed development.
To achieve a jump start, having a good number of senior members with some medium experienced members is advised.
However as the OPD embeds itself into the organization and moves into the stabilization phase, it is good to get a fair mix between senior, medium and junior profiles across the various functions to ensure that a majority of the members have a clear growth path in the organization. Not everyone on board will retire in the current organization :). Identifying the key members and grooming appropriate members to pick up the various operational and leadership roles is a critical part during the stabilization phase to create a sustainable organization.
Knowledge management is another crucial aspect to establish so that the leave of certain members does not create knowledge gaps and impact on the work continuity.
The distribution of work across the two sides must also be balanced in terms of mundane/routine and challenging/interesting nature. Living with the idea that the counterparts on the other side get to do all the new/interesting work will surely hamper the motivation of the smart workforce that we hired :).
Having said that, it is not before the OPD builds up the required level of knowledge on the various technology and functional aspects that these aspirations can be met. Working in collaboration with the parent teams, over the period, the OPD teams must be able to independently function on the stable aspects of work before aiming for more leading edge nature of work.
Matching the interests/expectations of a mixed workforce is not practical. However being able to retain the critical mass to ensure continuity of work, the required level of knowledge retention and sustainable capacity is needed. The crucial factor then is to prepare for a certain level of churn out and its impact on knowledge and capacity.
After the strategic phase of narrowing down to having an OPD, there are a number of operational elements that need to be timely managed to shape up the OPD to match its vision, get it embedded in the parent organization and collaborate, contribute to the success.
In this series, I have drawn the above observations having worked closely in setting up and running both captive and hosted offshore development setups over the course of last seven years. I have tried to touch base upon various elements at play from the operational aspects of establishing, managing an OPD.
Saturday, May 26, 2012
Enabling Offshore Product Development (OPD) - Notes and observations (Part-II)
~ people & objective
~ knowledge & process
~ cultures & mindset.
Some of the above elements need preparation and planning. Some aspects like the objective should be upfront shared in the existing organization and needs acceptance to enable participation and support at the different layers in the organization that will have a role in the formation and operationalizing the OPD.
The other aspects of Organizational Preparedness are:
* Executive level support for the OPD endeavor - to ensure that the people responsible for this initiative on both the Parent Organization and the OPD sides are sufficiently empowered to make timely decisions and are not left to defend and justify all their actions and decisions. This is best enabled by having an executive level member entrusted as the Single Point of Contact on the parent organization side.
* Organizational focus from all involved departments in setting up the OPD - to ensure that the needed support from the different functions across the organization happens in a coordinated manner without having to chase all the stake holders to pitch in for their part.
* Acceptance at the employee level to adopt, mentor and work with new setup without the typical fears associated with outsourcing - by keeping the employees informed on the background and objectives the chances of being motivated to participate and support this endeavor are high.
* Organization culture enabling participation (openness, transparency, trust) - to ensure that both at the parent organization side and especially at the OPD side people feel comfortable to discuss the real issues and realistic options without the fear of being shot down for identifying/reporting improvements. There can be no perfect plan to enable an OPD. A lot of improvisation has to happen as the OPD starts rolling out. Hence a culture that enables participation, delegating responsibility and building trust between the existing and new units is a big enabler.
Some of the elements can be tamed and amended to suit the needs. However some of them cant be solved (for e.g. culture, it existed much before this endeavor, your best bet would be to get the different cultures to work together). The overall approach should be to in-source solution(s) and not out-source your problem(s).
In the next part, I will share my experiences on the aspects of working with smart knowledge workers and setting the right expectations from the OPD.
Thursday, May 24, 2012
Enabling Offshore Product Development (OPD) - Notes and observations (Part-I)
From inception to embedding it as an integral part requires an Organization culture enabling participation (openness, transparency, trust). As the OPD embarks on its journey making the first steps, it needs continuous support in shaping up to its vision. An OPD transforms from a start-up to a partner in progress over a period through the nurturing in its growth phases and embedding in the overall organization.
The critical success factors (CSF's) for an OPD are the build-up of the required levels of knowledge and the formation of a stable and critical mass to be able to independently operate and deliver its value, establishing collaboration with the other counterpart units of the organization.
During the ramp-up phase, a defined approach for knowledge build up is needed. The approach should enable applying the technical/domain skills on the various product areas and build a good understanding of the various work processes. Apart from the initial training, establishing team based mentoring helps in Team formation (new recruits becoming a team) and Integration across geographies (distributed development, cultural integration, co-existence), balancing skills, experience levels to give a head start and enable team collaboration.
After the initial ramp-up as the OPD moves into its stabilization phase, the CSF's change to managing the additions in people, assimilation of knowledge, settling down with the chosen way of doing work, balancing aspirations with growth opportunities apart from knowledge management and knowledge retention. In this phase, there is a need to prepare for some churn out and its impact on the short-term and medium-term plans of the OPD.
In the next part, I will share my experiences on the aspects of Organizational preparedness for establishing, working with an OPD and working with smart knowledge workers and their influence on the success of the OPD.
Tuesday, October 21, 2008
Winning with Scrum Teams
Scrum as an Agile Development methodology focuses on the providing much frequently needed agility in the development process to better respond to changes i.e. 1 opportunity per Sprint versus a Fixed time slot (when and how much) approach in the traditional development methodologies.
Scrum also puts The Team in the drivers seat to plan best to the team's collective abilities and deliver on the commitment.
Apart from these the Scrum Team also get empowered due to their Size. Ideally a Scrum Team must be around 7 to 8 persons. The team must be multi-skilled i.e. all the needed skills must be there in the team (for Software Development this translates to Developers, Testers, Functional Designers, Technical Writer).
With clear roles and non-overlapping responsibilities for each team member, a clear ownership gets established and helps the team function as a unit towards the team targets and deliverables.
The daily morning time-boxed Standup meeting with specific questions helps cut down all the un-necessary communication lines. It brings out all the known dependencies, bottlenecks and facilitates making an effective daily plan of actions by priority.
Furthermore with ScrumMaster designated to move the bottlenecks, it leaves the team to focus on the commitment.
This underlying power dis-invested in a Scrum Team maximizes the return to the development process and the department.
The Approach of Scrum Teams and Sprint based execution needs some organizational preparations. However the return on such investments is improved team effectiveness, productivity and brings in the much needed Predictability.





