21
Thu, Nov
1 New Articles

Managing Cats

Commentary
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Do a search for “managing programmers” on the Internet, and you will find a number of sites that lead to the following observation: Managing programmers is like herding cats. The prevailing belief is that programmers are such an independent and rebellious bunch that they resist conventional management practices. Nonsense. The only similarity I see between programmers and cats is that both become attentive when food is present. A more honest and accountable appraisal might be that programmers, by and large, are an intelligent and creative group and thus are not resigned to suffer poor management in silence. Besides, I see no reason to malign cats.

The difficulty in managing programmers lies in the unique requirements of their vocation. The best programmers must be both linear and orbital thinkers. That is, they must be capable of sustained logical reasoning, coupled with bursts of creativity and cleverness. Programmers are both left- and right-brain thinkers, logical and intuitive, scientist and artist. Most managers would agree that overseeing a group of methodical scientists requires a different style than managing a bunch of unruly artists, but what do you do when both aspects are strongly present in the same people?

Equally daunting for managers is a mistaken notion programmers fervently harbor, namely that they work alone. They don’t, of course. Lighthouse keepers work alone. Typically, programmers are members of a team, and that team, directly and indirectly, interacts with numerous people who are part of a software development project. Yet, many programmers see themselves as digital cowboys who, armed with mouse and Cheetos, ride out alone to tame the wilds of cyberspace. Or conversely, programmers may revel in being “black hats” capable of hacking into any system, unlocking any secret, unrestrained by rules or security provisions designed to obstruct mere mortals. Both are romantic and self- aggrandizing notions, and, as a manager, you will not be popular for dissuading people of their fantasies.

These challenges are complicated by the fact that programming managers often come from the ranks of software engineers with scant experience as administrators. While technically brilliant, these engineers may be thoroughly unprepared to submit budgets, negotiate schedules, analyze requirements, and manage projects and people. Alternately, managers may be talented outsiders with general management skills and a solid


understanding of IT functions, but short on technical expertise, unable to fluently speak the alien language common to the software development community.

Either scenario presents unique challenges. Managing yesterday’s peers requires the ability to differentiate respectfully from the pack and to let go of the control enjoyed as a coder. Wanting to examine every code segment will only alienate the programming staff and exhaust the manager. The challenge for the newly promoted manager is to assign, trust, and test. Outsiders will have to earn the respect of the team by becoming knowledgeable about the software environment and by listening very attentively to input from the group.

Given the complexities of technology, the multidimensional personality of programmers, and the multifaceted demands placed on software development managers, I offer the Top Ten Considerations for Managing Programmers:

Drum roll, please!

10. Start with yourself—As a manager of whatever origin or experience, the most courageous and fruitful place to start is with yourself. Do an honest assessment of your strengths and weaknesses. Some managers are better technicians, others have more refined people skills, still others excel at administrative tasks. The reality is that the people you are managing are very bright, and you will not fool them. Find your area of learning and share your findings with your staff. They already know your weaknesses anyway, and honest disclosure builds trust. Delegate where you can and seek training where necessary.

9. Everybody learns—Having led by example, ask your staff to do a similar assessment of their own skills and training needs. Develop personalized training programs based on their responses. Ensure that your staff has the tools and knowledge to do the job. If, for example, you are developing an accounting system, it will be helpful for your staff to have a rudimentary understanding of accounting principles before designing the new system.

8. Be aware of learning styles—Understanding learning styles will assist you in communicating with people who are both left- and right-brain thinkers. Typically, you communicate in the style in which you are most comfortable. When that style clashes with the listener’s, you repeat your message louder in the hope that she or he will eventually get it. Usually, they won’t. It is much more effective to modify your communication to suit the listener. There are three primary learning modalities: auditory, visual, and kinesthetic. Each modality has a preferred way of receiving and processing information. Programmers are predominantly visual learners. Those who are principally left-brain visually oriented (the ones who typically work on linear systems such as accounting or manufacturing) want information presented logically and sequentially. These programmers have to see in order to listen. They need to have the why questions answered. They like information presented in manuals, on video, or on computer screens. They become overloaded with too many words. They need physical distance from the speaker to create mental pictures. They are often cautious and want time to reflect before deciding.

Right-brain, visually oriented programmers (the ones who gravitate toward games or highly graphical applications) are fast thinkers with subtle reactions. These programmers like new toys, new acronyms, and the latest technology. They get bored easily. They want to know what will occur before you begin. They make commitments that last, but they want control.

If both types are represented in your group, expand your communication style to include their preferences. When there is poor communication within a working group, it is often caused by a mismatch in the way people give and receive information. An awareness of learning styles will make you a more flexible communicator.

7. Create a shared vision—Developing a shared vision is the most powerful way to build a team and persuade your digital cowboys to march in lockstep. Create a vision for your


department as well as each individual project. On the project level, this means developing an explicit consensus about the nature of the software you are cocreating. Who are the users? What is their level of comfort with computers? What interfaces are appropriate? These, and the answers to dozens of other questions, will comprise your vision of what the end product should be. World-class teams are not autocratic, but collaborative. Programmers will be much more generative and passionate about a project if they view it as developing a collective work of art, rather than churning out code. Vision provides the roadmap. Take the time to create one.

6. Monitor technology overload—For all their eccentricities, programmers are the creators who breathe life into inert computer stuffings. To do so, they ride a technology roller coaster that never slows. New hardware, new operating systems, new programming languages, and new development tools all come at a dizzying pace. Overnight, today’s experts become tomorrow’s novices. Although the process of vocational death and rebirth is engaging and exciting, it is also ultimately exhausting. If members of your staff are resistant to projects that require learning new skills, they may simply be saturated. If possible, allow overloaded people to rest and regroup by assigning them less demanding tasks. And remember, just because a new technology exists doesn’t mean it’s appropriate for your shop. Assess your team’s interest in the new technology and the real, measurable benefits of deploying it. Before you make a move, evaluate whether the result you want could be achieved with technology your staff is comfortable with.

5. Beware of feature creep—Like the military’s nightmare of mission creep, feature creep can make short projects long and long projects endless. While most projects continue evolving beyond the requirements phase as users begin to fully explore the possible uses of their new system, excessive requests for new features should be handled as change orders, outside the scope of the main project. Feature creep is a schedule buster and the main reason projects drag on into the unproductive terrain of waning interest and dwindling commitment.

4. Protect your staff from political fallout—Any good manager will instinctively do this. Mistakes happen—that is why rigorous testing is a part of any implementation. In spite of best intentions and systemic precautions, some bugs will inevitably survive simply because all possible software usage scenarios cannot be anticipated. Top management may only have a rudimentary understanding of IT and may thus reach unwarranted and unflattering conclusions. A manager’s responsibility includes educating his management team and setting realistic expectations, then assuming full accountability and ownership of the outcome.

3. Develop rigorous standards for specifications—The more clarity and detail you build into the design specifications, the greater the probability of a successful and timely implementation. This becomes doubly important in a distributed environment where distance imposes its own discipline on application design and development. But the degree to which any project relies on continuous direct communication as a remedy for lack of design precision is the degree to which the development process will be frustrating for all concerned. As in manufacturing, the more quality built into the front-end of the process, the less rework required.

2. Remember the big picture—It is easy to get swallowed up by the crisis of the moment and lose perspective. When external pressures mount, programmers are too often sacrificed at the altar of today’s disaster. An indication of myopic focus is when dedicated people are worked to exhaustion, and individual sacrifice becomes the answer to every crisis. Problems occur in context. If your staff is constantly fighting fires, you have a process problem. Employees are not empowered to create or change a process, they simply thrive


or fail within established structures. Only management can change an existing process, but employees are a great source of information about what works and what doesn’t. Ask them.

1. Set realistic schedules—I’ve seldom heard the word schedule in a development context when it wasn’t preceded by the word aggressive. It’s as if it’s somehow an admission of inferiority to advocate for realistic schedules. But, in my experience, the number one reason projects fail, programming managers lose their jobs, programmers quit theirs, and users gripe, is the imposition of unrealistic schedules. Simply stated: Overly aggressive schedules produce shoddy software and burn out employees. Never assign a task to a programmer unless he or she has fully bought into the implementation schedule. It is cruel and counterproductive to force an unrealistic schedule on your team members and then put them in the position of being targets of criticism when the software is delivered full of unanticipated glitches. The exhortation to work harder is often a poorly disguised attempt to compensate for unrealistic expectations created by unreasonable schedules. Individual heroics should not be the substitute of choice for sensible scheduling.

Build a fudge factor into the schedule. A friend of mine who works as a consultant says that building an extra month into the schedule is always a win-win situation. If the project comes in on time, his customers are pleased. If he delivers the software a month ahead of schedule, his customers are delighted. All things not being equal, opt for delight.


BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: