Sponsors

Microsoft


TechWell

We have 2526 guests and 4 members online

Home Behaviorally Speaking Behaviorally Speaking: People, Process and Technology in Diverse Development Environments!

Behaviorally Speaking: People, Process and Technology in Diverse Development Environments!

E-mail
Written by Bob Aiello   
Monday, 31 March 2003 16:00
When my Editor mentioned that this months topic was Java development I had an immediate reaction of feeling confused and disoriented. I am pretty familiar (and hands-on) with many technologies. These days securing source code means that you have to be comfortable working on a variety of Unix flavors (e.g. Solaris 6/8, HP-UX, AIX, Linux RHAS 2.1), IBM AS400, IBM mainframes, and Windows environments including Visual Studio (and .net and lately I am being asked for .net 2003). Some of the systems that I am supporting have their DB2 databases on IBM mainframes or Sybase on Solaris 8 or Microsoft SQL Server being accessed by IIS and ASPs.  In my “spare” time I play with PHP/mySQL just for fun and to stay hands-on with Web based technologies. I am responsible for securing Source Code for my firm, where ever the code is located! Not only is this a technical challenge, but I have to train and support 300+ developers worldwide (e.g. NY, NJ, Dallas, Chicago, London, etc.) . That means multiple time zones, cultural norms, languages and physical locations. Read on if you’d like to see how we make sense of today’s people, process and technology challenges!
Why Can’t They Just Understand?

Many of us went into technology because we liked things being real clear. It either works or it doesn’t! I personally love “dancing” with the software. I am always happiest when I am trying to solve a really good technical problem. I know that I will get it and I really enjoy the effort to get to the finish line. After, I have spent the time and effort doing it right, I can sometimes have trouble dealing with people who don’t have the intelligence to see things my way (notice I am smiling as I say this…). Helping large organizations improve their software development processes can provide many opportunities for us to encounter those who don’t exactly see things the way that we do. Sometimes, we realize that these people may, in fact, have their own agendas. I once had a boss who would actually tell me to avoid helping people who disagreed with him, publicly, in meetings. At the time, I was the project manager for a 10 person test team in a large company. My boss had an agenda and it was really not in the best interests of the company.  Working in a large company can present many difficult situations where our ethics, coping strategies and problem resolution skills can certainly get a great workout!

Learning the People Side of this Business

Many disciplines have extensive training in developing excellent people skills. Lawyers and Marketing professionals spends many hours working on their ability to persuade others to believe a particular point of view.  So why don’t IT professionals get this type of training. I got so frustrating with failing to persuade others that I went back to graduate school to develop some new skills! Hey maybe I am even persuading you!

I have talked a lot about the people side of implementing CM solutions in all of my articles. My point here is suggest that this is an area that deserves just as much focus as say the technical or process competencies that we hold dear. Most of all we have to value improving our people skills. There is always room for improvement and often technology professionals have lots of room for improvement.

The Internet has also changed the game. Communication is a vital aspect of all technology work these days. I spent my entire day today on the phone with three different technical reps from IBM, trying to solve a challenging integration problem. I am pretty certain that all three of those folks would suggest that I could improve my own interpersonal skills (easy for them to say, I am the one with the deadline tomorrow!).

The diversity of cultures, languages, geographic locations and time zones makes the people side of our work, ever more challenging and important.

Developing a Process Based Organization

Getting it right each and every time is what “Process” is all about. A process based organization defines the tasks, roles and responsibilities and a set of standards for Quality Assuring that everyone has completed required tasks correctly each and every time. From a CM perspective, a process sets the stage for Releases to be deployed accurately and correctly each and every time.  If your organization cannot rebuild a particular release (that is currently in production) then, in my opinion, you are not process oriented.  I have worked in large financial services firms where they could not rebuild a release 2 hours after it was deployed! When the NY Stock Exchange went down for one hour, I proved that we could ascertain EXACTLY what versions of code had been deployed in particular release and that helped find the real problem and avoid a (potential) future outage.

Learning more about the SEI’s CMM, ISO 9000-3, Six Sigma or Agile is essential to having the essential ingredients to developing processes that will meet your companies’ needs and goals. Deming’s principles are as valid today as they were when he impacted Japanese industry so dramatically. My personal favorite is using Organizational Development’s Action Planning (from Kurt Lewin and others) to develop processes in a collaborative and effective way.

Technology – the Race is on…

Some days I feel like IT requires more effort to stay updated than being a doctor (I am an EMT who refreshes every three years). Our technologies must be robust and based upon sound technology platforms. CM practitioners should be working with robust technologies that are based upon solid platforms. I have said before that use of unreliable CM tools that “accidentally” drop or corrupt a version of a source file are not acceptable. Modern CM tools must have solid access controls, complete event auditing and referential integrity to immediately alert us if a version of file is missing.

The Challenge of Java, J2EE and Distributed Technology

The Java environment certainly highlights the tremendous difficulty of today’s CM environment. I work with developers who are hardcore Unix hacks and those who are lost without their Windows Explorer. We have systems that are distributed across thick Visual C++ (or VB or .net) clients, talking to Web Services, accessing databases that may be on a mainframe (DB2) or Windows Server (SQL Server) or Unix (Sybase).  We may be developing a mathematical model on the floor of a trading room or a slick user interface in our offshore site in Asia.

Our processes must be consistent, but culturally appropriate. We have partners who are CMM Level 5 development organizations along with senior managers who refuse to consider implementing a single (SEI CMM) KPA (key process area). It’s a great time to be in CM! The challenges of today’s wildly distributed environments, including Java and J2EE make this effort richly challenging and rewarding. As a community we have much to offer. It’s my suggestion though that we need to retool and give equal focus to People, Process and Technology.



Bo
b Aiello is a Senior Contributing Editor for Crossroads News and an Associate Director at Bear Stearns & Co. where he is engaged in Software Process Improvement on a large scale basis. He is also on the Board of Directors for the Organizational Development Network of Greater New York (ODNofGNY) and a member of the Steering Committee of CitySPIN in New York. Mr. Aiello has a Masters in Industrial Psychology and a BS in Computer Science.

You can reach Mr. Aiello by email at
raiello@acm.org

Trackback(0)

Comments (0)add comment


Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Tuesday, 01 April 2008 10:47