Microservices Expo Authors: Elizabeth White, Pat Romanski, Gordon Haff, John Katrick, Mehdi Daoudi

Related Topics: Microservices Expo, Java IoT, Industrial IoT, Microsoft Cloud, Cognitive Computing , Agile Computing

Microservices Expo: Book Review

Book Review | Peopleware: Productive Projects and Teams (3rd Edition)

The most honest and accurate view of software management today.

The main goal of this review is to highlight parts of the book and provide a personal experience that relates to them. This entire book is made of real world scenarios, but I will only be able to hit a few in a review. I have had the opportunity to be on many different types of projects during my career. I have been on a project where it was just me and a steering committee, projects that involved several teams around the world, and on teams ranging from 1 other developer to over 30. The one common thread through all these projects is that the highest risk was the people on the project.

With the rapid speed at which technology is changing I have found only one way to ensure it works as advertised, Proof of Concepts. The same holds true of my development teams when I have no history with them. With the rapidly changing skill sets out there today, there is only one way to ensure your team has what it takes, Proof of Concept (POC) them.

Proof of Concepts (POC) plays an important role in not only testing your choice of technology and architecture, but of your development team as well. There is no doubt that people are nowhere close to being as predictable as software components. Software components are lucky; they don’t have emotions or free will. It is however fairly easy to read a person’s skill levels when what they are making has a predictable outcome.

One of my projects were I POC'd my team we were using the Composite UI Application Block (CAB) from Microsoft’s pattern & practices group. I had 3 developers on the team. Each was given an equal workload which included building a complete smart client module from the UI to the DB. The technology proof of concept had already been done at this point, so I knew the technology worked as advertise. The first iteration of development was a POC of the development team and of the framework’s architecture. We learned within a week that the team members had very different levels of ability.

One of them was able to code all the layers of the application including the DB level, but didn’t like UI work. One was only able to develop the UI forms, and was able to lay them out well. The other was dangerous in a team environment and was locked out of source safe. The dangerous developer worked on the Help documentation, configuring servers, and did a lot of testing.

The initial plan was completely scrapped, which was to have them build complete smart client modules from the UI to the DB, and the new assignments were made. We hit every estimate. If we had not POC’d the development team, we would have delivered buggy late code with each iteration.

The point is that no matter how well you architect a solution, or think you have a bullet proof software development process in place, people can unravel your project every time if you don't know how to manage them and their environment. To be able to effectively manage them you must understand the skill set they are bringing to the project. This book can help you do that and much more.

I have listed the parts below, but have not included the chapters because many of the titles don't make sense until you read the chapter.

Part I: Managing the Human Resource
Part II: The Office Environment
Part III: The Right People
Part IV: Growing Productive Teams
Part V: Fertile Soil
Part VI: It’s Supposed to Be Fun to Work Here

This book not only helps you manage and work with others, it also offers a lot of advice that helps balance work and home life. It shines light on the workaholic and how everyone has a bout of it now and then.

One of my favorite topics is undertime. Management thinks they are getting away with overtime, but the balanced (not a workaholic) always puts in as much undertime as they do overtime.

One of my mantras for successfully delivering what your business users need, versus what they think they want, is that you are going to have to lie to them at some point in the process. The lie may just be withholding information, but if you want to deliver a quality product, you're going to have to keep that bit of information from them. They are all too willing to sacrifice quality for quantity or perceived time to market.

This book explains why the builders should control quality levels. I agree, and when I can get away with it, I don't ask them if I can control it, I just do. Most of my clients I have worked for have no idea that I do 80% architecture, research, coding proof of concepts, requirements documentation, architectural synthesis, and design, and only spend 20% of my time doing the construction coding. Construction coding builds the modules on the framework I put in place during the 80% activities.

If they found out, they would want me to just start coding. If I did that, I would be like most places I have seen that do 20% analysis, 80% coding, and another 30% rework. They are always over budget and never meet their fictional timelines. I hate documentation, but it makes me present the project in a form that elicits the problems I would run into coding before I am into deep to make architectural changes.

I did have one client find out. He literally sent me an email that had the subject line of "I am paying you to code not think". A year or so after we successfully delivered on time and within budget and rolled off the project, I found out he was called into the board of his organization and was fired for incompetency and hiding the ramifications of his poor decisions from the board.

Like I said above, this book does an excellent job of explaining why the quality level of a product should be left up to the builder. I also like the idea the book mentions about the builder's veto power. I would love to have veto power over marketing and the business owners with respect to releasing a product. All too often I have seen premature releases that are accompanied by a nice long known issues list.

The book really covers working environments in great detail. Since I left the electronic engineering field I have not had an office with a door except at my home office. I have sat at tables where all the printers were for the office. The printing noise wasn't bad, but the people standing around talking, waiting for the slow printers, was a problem.

At work I am in a cube that is noisy 25% to 75% of a given day. I share it with one of the main application support guys on our team, and he often has a line waiting to see him. While they wait I am an open target for them to kill the wait time talking to me. To help a little bit I turn off my phone's ringer. Company policy is to always answer your phone, but 90% of the calls I get are salesmen calling about a product I needed to research.

Another thing about the office is they keep it hot in the winter and hot in the summer. They keep it around 76-78F, but I have seen the temperature at a screaming 82F. I have to keep a fan blowing on me and by the end of every week my eyes are wind burnt and bloodshot. My chair I have at work has me going to the chiropractor. They were going to buy us new chairs, but discovered they were too expensive, and we aren't allowed to bring our own chair in.

I work from home on Mondays. My home desk provides me twice the area I have at work. I have the room at a cool 68F. I have a great ergonomic chair. If I get a call I can put it on speaker phone, instead of having to hold it to my ear with my shoulder.

Context switching is always a big problem. The book refers to it as no-flow time. The book calls the state of being in deep thought and cranking through code or documentation 'Flow'. On average I would estimate I get 20 - 80% more work done on Mondays than any other day of the week because I have the isolated environment I need to think. To get hold of me people IM, email, or call if needed, but I can queue them until I am done with what I am working on. At the office if you don't answer right away they come to your cube and interrupt your thoughts.

I was once on a team that hired a tech writer that could not write technical documents. He could not even proof ours which was his main assignment. He would replace technical terms with terms he thought should be there and it would completely destroy the document. He soon had no work to do. This was a government team so they were not going to replace him anytime soon.

He started filling his day by popping into our team's cubes and just started talking. By the end of the first week of that I took him into a room and used the white board to draw the architecture I was working on. I numbered the locations of changes that needed to be changed for a user interface change and data that accompanied that change. There were about 6 or 7 places. I described what was happening in each place, and that all those places were being thought of at the same time. I told him every time he comes into our cubes to just talk, he erases everything we had queued up in our brains to make the changes. I explained that we had to take anywhere from 15 minutes to 45 minutes, depending on the complexity of the change to get back to work. He understood and stopped making rounds to our cubes.

The very next team meeting our manager said he wants to see more collaboration and he wants us to be visiting each other in our cubes more often to make that happen. The tech writer and I just busted out laughing. I then had to explain the same thing to the manager. Luckily he got it too.

Like I said at the beginning of this review, my main goal of was to highlight parts of the book and provide a personal experience that relates to them. I could continue that, and probably have my own book by the time I was done, but I will stop here. Everything in this book touches on the real world experiences we have as software architects, project managers, developers, CTOs, and CIOs.

If you are an IT manager, this is mandatory reading. If I ever find myself in a position of hiring IT managers, my first and maybe last question will be "Have you read Peopleware?"

If you are considering going into the software world, you must read this book first. It will help you have the right expectations of what you will find there. If you are already in the software world, this book will help you understand why things are the way they are and help you to potentially change them.

Peopleware: Productive Projects and Teams (3rd Edition)

More Stories By Tad Anderson

Tad Anderson has been doing Software Architecture for 18 years and Enterprise Architecture for the past few.

@MicroservicesExpo Stories
"We started a Master of Science in business analytics - that's the hot topic. We serve the business community around San Francisco so we educate the working professionals and this is where they all want to be," explained Judy Lee, Associate Professor and Department Chair at Golden Gate University, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability and development velocity challenges. In his session at 21st Cloud Expo, Ryland Degnan, a Senior Software Engineer on the Netflix Edge Platform team, will discuss how by leveraging a reactive stream-based protocol,...
We call it DevOps but much of the time there’s a lot more discussion about the needs and concerns of developers than there is about other groups. There’s a focus on improved and less isolated developer workflows. There are many discussions around collaboration, continuous integration and delivery, issue tracking, source code control, code review, IDEs, and xPaaS – and all the tools that enable those things. Changes in developer practices may come up – such as developers taking ownership of code ...
The dynamic nature of the cloud means that change is a constant when it comes to modern cloud-based infrastructure. Delivering modern applications to end users, therefore, is a constantly shifting challenge. Delivery automation helps IT Ops teams ensure that apps are providing an optimal end user experience over hybrid-cloud and multi-cloud environments, no matter what the current state of the infrastructure is. To employ a delivery automation strategy that reflects your business rules, making r...
Cloud Governance means many things to many people. Heck, just the word cloud means different things depending on who you are talking to. While definitions can vary, controlling access to cloud resources is invariably a central piece of any governance program. Enterprise cloud computing has transformed IT. Cloud computing decreases time-to-market, improves agility by allowing businesses to adapt quickly to changing market demands, and, ultimately, drives down costs.
For over a decade, Application Programming Interface or APIs have been used to exchange data between multiple platforms. From social media to news and media sites, most websites depend on APIs to provide a dynamic and real-time digital experience. APIs have made its way into almost every device and service available today and it continues to spur innovations in every field of technology. There are multiple programming languages used to build and run applications in the online world. And just li...
The general concepts of DevOps have played a central role advancing the modern software delivery industry. With the library of DevOps best practices, tips and guides expanding quickly, it can be difficult to track down the best and most accurate resources and information. In order to help the software development community, and to further our own learning, we reached out to leading industry analysts and asked them about an increasingly popular tenet of a DevOps transformation: collaboration.
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
How is DevOps going within your organization? If you need some help measuring just how well it is going, we have prepared a list of some key DevOps metrics to track. These metrics can help you understand how your team is doing over time. The word DevOps means different things to different people. Some say it a culture and every vendor in the industry claims that their tools help with DevOps. Depending on how you define DevOps, some of these metrics may matter more or less to you and your team.
"CA has been doing a lot of things in the area of DevOps. Now we have a complete set of tool sets in order to enable customers to go all the way from planning to development to testing down to release into the operations," explained Aruna Ravichandran, Vice President of Global Marketing and Strategy at CA Technologies, in this SYS-CON.tv interview at DevOps Summit at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"We are an integrator of carrier ethernet and bandwidth to get people to connect to the cloud, to the SaaS providers, and the IaaS providers all on ethernet," explained Paul Mako, CEO & CTO of Massive Networks, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"Grape Up leverages Cloud Native technologies and helps companies build software using microservices, and work the DevOps agile way. We've been doing digital innovation for the last 12 years," explained Daniel Heckman, of Grape Up in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"NetApp's vision is how we help organizations manage data - delivering the right data in the right place, in the right time, to the people who need it, and doing it agnostic to what the platform is," explained Josh Atwell, Developer Advocate for NetApp, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"Outscale was founded in 2010, is based in France, is a strategic partner to Dassault Systémes and has done quite a bit of work with divisions of Dassault," explained Jackie Funk, Digital Marketing exec at Outscale, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"I focus on what we are calling CAST Highlight, which is our SaaS application portfolio analysis tool. It is an extremely lightweight tool that can integrate with pretty much any build process right now," explained Andrew Siegmund, Application Migration Specialist for CAST, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Let's do a visualization exercise. Imagine it's December 31, 2018, and you're ringing in the New Year with your friends and family. You think back on everything that you accomplished in the last year: your company's revenue is through the roof thanks to the success of your product, and you were promoted to Lead Developer. 2019 is poised to be an even bigger year for your company because you have the tools and insight to scale as quickly as demand requires. You're a happy human, and it's not just...
The enterprise data storage marketplace is poised to become a battlefield. No longer the quiet backwater of cloud computing services, the focus of this global transition is now going from compute to storage. An overview of recent storage market history is needed to understand why this transition is important. Before 2007 and the birth of the cloud computing market we are witnessing today, the on-premise model hosted in large local data centers dominated enterprise storage. Key marketplace play...
Cavirin Systems has just announced C2, a SaaS offering designed to bring continuous security assessment and remediation to hybrid environments, containers, and data centers. Cavirin C2 is deployed within Amazon Web Services (AWS) and features a flexible licensing model for easy scalability and clear pay-as-you-go pricing. Although native to AWS, it also supports assessment and remediation of virtual or container instances within Microsoft Azure, Google Cloud Platform (GCP), or on-premise. By dr...
With continuous delivery (CD) almost always in the spotlight, continuous integration (CI) is often left out in the cold. Indeed, it's been in use for so long and so widely, we often take the model for granted. So what is CI and how can you make the most of it? This blog is intended to answer those questions. Before we step into examining CI, we need to look back. Software developers often work in small teams and modularity, and need to integrate their changes with the rest of the project code b...
Kubernetes is an open source system for automating deployment, scaling, and management of containerized applications. Kubernetes was originally built by Google, leveraging years of experience with managing container workloads, and is now a Cloud Native Compute Foundation (CNCF) project. Kubernetes has been widely adopted by the community, supported on all major public and private cloud providers, and is gaining rapid adoption in enterprises. However, Kubernetes may seem intimidating and complex ...