http://blog.coderguy.com/Ghost 0.7Fri, 22 Feb 2019 16:42:42 GMT60Lately, I have run into a number of method name collisions in my Ruby and Javascript development. I want to document them for myself.

A method name collision is when you use a word that is already defined by the language but is not a reserved word. Generally things will

]]>http://blog.coderguy.com/method-name-collisions/36e8f565-b159-438e-975c-20006df8844fMon, 14 Mar 2016 19:30:21 GMTLately, I have run into a number of method name collisions in my Ruby and Javascript development. I want to document them for myself.

A method name collision is when you use a word that is already defined by the language but is not a reserved word. Generally things will compile just fine, it is only when the code is running that you experience a collision between the existing functionality and your new functionality.

call

I have been doing a lot of Twilio development. We needed to track phone calls. I first called the object Call. Naming something call, like a PhoneCall is a bad idea. The method works as a class name, but when you start using it as an ActiveRecord relationship that is when you run into trouble.

A call has many conversations.

# example of the problem
c = Conversation.last
c.call

You would think that c.call would show you the call, but in reality you just tried the ruby call class method. I solved the problem by renaming the class from Call to PhoneCall.

# renamed version
c = Conversation.last
c.phone_call

send

Again working with the Twilio API, this time I was working with SMS messages. I had the TextMessage model and could send it with the .send method.

method

For method I was doing some meta programming. I allow the model to specify a dynamic method that will be called. This time, I was getting a syntax error. Renaming it from method to dynamic_method fixed it.

Conclusion

Be mindful of method names that might already be in use, but are not reserved words in the language. Often times these words will work fine as class names, but fall apart when you use them as method names. The side effects can hard to debug.

]]>Working on an angular project I found the need to make some private variables for my services. I have used the pattern of making an object that is returned.

The private nature of the variable was achieved by creating a variable in main function and returning a service object.

I

]]>http://blog.coderguy.com/javascript-getter-setter-function/a6987026-fd60-42fb-ace5-d75c76b20e22Tue, 02 Feb 2016 20:27:24 GMTWorking on an angular project I found the need to make some private variables for my services. I have used the pattern of making an object that is returned.

The private nature of the variable was achieved by creating a variable in main function and returning a service object.

I wanted to allow you to call the method without an argument to get the current value and passing an argument would set and return the value.

This worked fine until I needed to set the status to a null or false value. To get around this I updated the code to check the magic arguments variable. All functions have a variable named arguments that contain details about the arguments passed in.

]]>I have been thinking a long time about what makes a product offering Enterprise. I think when it comes to a SaaS offering that you plan to bundle with SaaS services these are the key items:

Full API

All the features for creating, editing and managing data that are exposed

]]>http://blog.coderguy.com/saas-api-manifesto/846c0809-8402-4655-94a5-c5027a52defdWed, 12 Aug 2015 22:21:50 GMTI have been thinking a long time about what makes a product offering Enterprise. I think when it comes to a SaaS offering that you plan to bundle with SaaS services these are the key items:

Full API

All the features for creating, editing and managing data that are exposed in the web app should also be accessible via the API.

Support Nested Objects, Don't Expose Tables

Many times objects require nested objects to be create, as is the case for most orders. In these cases the API provider should support object creation via nested objects and not require the developer to make a batch of calls. For example, if you were creating an API for placing an order. Don't require the API user to make 5 distinct calls to create a user, address, attach a product and attach a payment method. This could be handled with a workflow call that works a lot like your web app would work. It takes the whole order object in and creates any nested objects.

Multi-user

The product must support multi-users and depending on the application you should allow different roles. The role of account owner should be transferable. People come and go from companies and account owners change. Additionally there should be a login for the accounting team to be able to update the payment info and review past invoices.

Multi-environment

If you are building a system that is transactional or will integrate with other systems giving users the ability to create multiple environments is critical. While offerings like stripe that have a test and live environment are super-helpful, being able to spin up new environments for special projects is very helpful.

Environment Replication

Hand in hand with the multi-environment requirement is the ability to sync data between environments is an important developer tool. This allows business users or developers to setup a complicated data set and move it from a staging or production environment to a development or test environment for testing.

Logging

All API calls to the API should be logged with full request and response headers and bodies. These logs can be truncated to save space, but the truncation should be rolling.

Documentation

All API endpoints should be documented with clear example calls and responses. Additionally if a user is logged in show them the docs with their API keys automatically interspersed. Curl examples are the lingua franca of APIs. Be sure to include any required headers in your curl examples.

]]>True Omni-channel

Omni-channel is probably one of the most over hyped amorphous terms to hit the e-commerce world in a while. I wanted to take the time and explain the difference between omni-channel and multi-channel and point out that most omni-channel vendors are really providing a multi-channel solution.

Definitions

Omni-channel is probably one of the most over hyped amorphous terms to hit the e-commerce world in a while. I wanted to take the time and explain the difference between omni-channel and multi-channel and point out that most omni-channel vendors are really providing a multi-channel solution.

Definitions

A channel or sales channel is a place that you sell your products. The main channels in operation today are: your website, marketplaces (Amazon, Ebay, etc), your app and retail location(s).

Multi-channel means that your e-commerce operates with multiple sales channels. For example, you might have a presence on a marketplace like amazon or ebay and a an e-commerce website. Both channels might share the same warehouse or fulfillment center or the might have different warehouses.

Omni-channel means that you have multiple sales channels and that your system is able to process a transaction across the channels. The across channels part is very important.

Main Distinction

The main difference between multi-channel and omni-channel is that your channels are aware of each other and can handle transactions across multiple channels. Most omni-channel solutions are really multi-channel with a new coat of marketing paint.

Example Use Cases

Consider the following use cases:

A customer buys a product online and picks it up in the store.

A customer buys a product in the store and returns it via your RMA process online.

A customer buys a product online and it is delivered via UPS and they return it to the store for a refund on the original card.

I have always had an autodidactic bent. I think it comes from my father. My father had 4,000 books in our garage growing up and was always reading. I remember how he used to love going to book stores, a trait I also inherited. On one trip to a rather large book store (before the days of Amazon.com), I remember we bought so many books that the back of our 91 Ford Escort leaned low to the ground as we drove away.

My personal motto has been to "Always Be Learning." To this end, after graduating college I set a goal, to read a book a month. That was over ten years ago. It is a goal that I have largely kept. It has served as an internal measure for how busy I am. When I get to busy to read, I find that my creativity stifled and that I am working to much.

Books represent a lot of things to me, but mostly they act as a flywheel. A flywheel for ideas and a grinding stone to sharpen my thinking.

Technology

I have spent most of my career as a software developer. Despite this, I was a big hold out for printed books. Partly because I could get used books so much cheaper than digital and partly because I like to know where I am in a book relative to the end.

The bad parts of books are the space they take up and moving them. My father has moved many times cross country (think enough books to fill up a large u-haul and that was before furniture). My best friend also had a decent size collection of books (he moved a lot). My youngest brother seems to move his 1000 book collection about every 6 months.

After all of these moves combined with the refinements in digital readers I am now a fan of digital books. The key refinements were full text search, the ability to cut and paste, the ability to see all of my highlights collected on a single page and access to my library anywhere via my phone or computer. My exception to digital books are book that are heavily visual, because publishers just don't execute them well on digital devices.

Types of Books

In his classic book, How to Read a Book (a must read), Mortimer Adler places books into three categories: informational books, good books and great books. Informational books are about well information. They do not challange your view of the work, rather they inform. Good books shift your view of the world or a topic. Great books are books that continue the shift your view of the world everytime you pick them up. A good book will seem dull upon returning to it years later. A great book will remain sharp an engauging. It will seemling continue to change and stay one step ahead of you.

Adler also outlines three levels of reading. The first is an inspectional reading or the high level skim. After this phase you decide if a book is worth reading. The second level is a deep analytical reading. During this reading you are able to clearly articulate the arguments that the author is mounting. The final level is a syntopical reading. At this level the reader takes the arguments extracted from multiple books and compares and contrast them with one another. The goal is to be able to allow the ideas to with each other. This level represents a higher level of understanding of the subject matter.

Framework Development

Over the years books have provided me the vocabulary to formulate and express a framework for my work as an entrepreneur. To better refine this framework I find myself gravitating to informational books. These books are the basic informational books I read when I first embarked on my reading journey. Rather books that help me to understand a good lay of the land (50,000 foot view) combined with books that have more detail view as needed.

Updating Goals

My goal of reading a book a month was never about reading a book. It was about a personal commitment to always be learning. To this end over the past year if I am honest, I have not kept pace with reading a book a month. Instead I have replaced reading with audio books. I use the same method for picking my books, but I can now get through them much quicker.

Quick Listen

With audio books I find myself listening to a book a week. The average book I listen to is about 10 hours. I have a wife, 3 kids, work at a startup and am trying to start my own. Upon learning this people ask how do I find the time to read and listen to so many books. The answer is 3 speed. I listen to most of the books at the 3x setting. The audible app has a great 3x setting. The app controls the pitch to keep the voices from sounding like chipmunks. Thus I only need about 3-4 hours a week to ingest a book. I find the time to listen during my walk to and from work and before bed.

The follow up question is how do you retain the information. The answer is two fold. First I am an auditory learner. Second, retention has never been a primary goal of mine. The main goal is to always be learning. I have found that books are a great source of learning. Authors tend to think more about ideas before writing a book than a blog post.

The pace is frantic, but my ear has grown used to the fast speed. I have listened to seven books in the first seven weeks of the 2015. I am interested to see if I can find enough books worth listen to this year to make it an even 50.

If you have any good book recommendations please be sure to tweet them at me. My favorite topics are startups, business and technology.

]]>So I am going to take a stab at some new year's resolutions. I know most resolutions fizzle and fade about 3 weeks into the year. I also know that a lot of people find resolutions to be trite and unhelpful. Being aware of a high failure rate and a]]>http://blog.coderguy.com/new-years-resolutions-2015/921aad5e-1279-498b-b5bf-c2338965ec19Tue, 06 Jan 2015 19:21:42 GMTSo I am going to take a stab at some new year's resolutions. I know most resolutions fizzle and fade about 3 weeks into the year. I also know that a lot of people find resolutions to be trite and unhelpful. Being aware of a high failure rate and a host of possible psychological basis for why resolutions might not work, or might make things worse, I boldly (and boldly is an overused business word) move forward with the following resolutions.

1. Health

At the end of 2013, I switched my diet to a Whole Food Plant Based (WFPB) diet. This is a diet that is high carb (yes high carb) and low fat. It is also plant based, ie I don't eat animals (meat) or animal products (dairy, eggs, etc). The diet was very successful for me. I felt better then I had in years and lost a good amount of weight. This is my general mode of eating, but the past month I have found myself slipping away from it. I am going to refocus my diet on this path.

Key points to my success with WFPB:

Have meals premade. Weekend meal planning and cooking, while difficult, helps me to stay on track.

Soup. Having soup helps.

Tracking what I am eating. A lot of WFPB say that you don't need to track. I agree generally, but I find when I track I am more in control of what I eat.

Don't allow myself to cheat. Cheating is slippery slope. It leads to a compromised mind, which allows me to eat a lot of off track food.

My goal is to eat WFPB more consistently, to avoid overeating and to get down to 200 lbs.

2. Sleep

Need to go to bed in a more systematic factor. Staying up late does not make me more productive and is actually a negative on productivity. When I stay up late, I allow myself to "cheat" and find myself overeating. I am also not as sharp the next day. These seem basic and obvious and they are, but developing a practice is the harder part.

My goal is to go to bed by 10:30 most nights of the week.

3. Exercise

This will help with sleep. I have finally found a form of exercise that I enjoy. I recently purchased a WaterRower Club used via Craig's List.

My goal is to row 3-4 days a week.

4. Writing

Writing is very important to the phase that I find myself in. It is a place to refine and record my ideas. I do not believe that I have very original ideas, but I find that writing is a furnace that allows me to forge and shape the ideas from their raw form into something useful.

I would like to focus on writing every day.

5. Reading

Reading has long been a standard part of my life. I have tried to read a book a month since I graduated college. I am amazed at the number of people that would spend a substantial amount of money on a college education only to never pick up a book again after graduating.

In 2014 I got big into audio books. These help me to get the benefits of books without having to spend as much time. I often listen to books at three speed. Audible is great for this. Their software handles the speeding up of books to keep them sounding good and controls the pitch to prevent people from sounding like chipmunks.

My goal is to read or listen to a book a month. Same as it has been for a long time. No need to keep raising the standard because this area is very solid for me.

Conclusion

This post is mostly a ramble for myself to be able to come back and reference in March, July and October.

Eat. Sleep. Move. Read. Write.

]]>In his book Zero to One Peter Thiel puts forth the "seven questions that every market-creating business must answer." I am working through these questions for commerce.io.

The Engineering Question: Can you create breakthrough technology instead of incremental improvements?

The Timing Question: Is now the right time to start

]]>http://blog.coderguy.com/peter-thiels-7-questions-for-startups/6b4ecb40-05b9-4b82-8d36-25bb09c1bdb2Sat, 22 Nov 2014 00:30:59 GMTIn his book Zero to One Peter Thiel puts forth the "seven questions that every market-creating business must answer." I am working through these questions for commerce.io.

The Engineering Question: Can you create breakthrough technology instead of incremental improvements?

The Timing Question: Is now the right time to start your particular business?

The Monopoly Question: Are you starting with a big share of a small market?

The People Question: Do you have the right team?

The Distribution Question: Do you have a way to not just create but deliver your product?

The Durability Question: Will your market position be defensible 10 and 20 years into the future?

The Secret Question: Have you identified a unique opportunity that others don’t see?

Thiel says that if you don't have solid answers to these questions you will hit "bad luck" and fail.

General Comments

I debated between this book and Isaacson's Steve Jobs. I decided to start with this book because it offers the promise of a comprehensive history of the people behind computers and the internet. This book did not disappoint. I have read several books that have dealt with different people in the history of computing, but never one that tried to go from the beginning to now.

10 Takeaways

Isaacson opens the book with the debate of all books on innovation: is innovation the work of the solo genius or the product of great teams. Isaacson says it is both. For the most part he depicts a driving innovator (like Steve Jobs) and a winning team (Apple).

Innovation requires teamwork.

Innovators often have obsessive personalities combined with metaphorical thinking, an obsession to details and the ability to drive a team to yield forth their vision.

Innovation is usually at the intersection of multiple disciplines. For Ada Lovelace it was the intersection of art and math. For Steve Jobs it was the intersection of technology and liberal arts. For Bell Labs it was the long hallways and the intersection of physicist, engineers, field technicians and mathematicians.

It was interesting seeing how Intel shaped the company culture of Silicon Valley companies by creating a nearly flat, results oriented company. Also, they created the view that it was ok to not work at a company for your whole life.

Isaacson shows how different parties played in the innovation of computers and the internet. Bell labs, a government sanctioned monopoly, did a lot of the basic research required for the transistor. Venture capital, helped Intel build the hardware needed to develop smaller computers. The open sharing homebrew and later open source movements developed much of the software. Microsoft commercialized software. Apple married hardware and software. The military needed a nuclear safe network that grew into the internet. The open protocols of HTTP and TCP/IP allowed Netscape to build a web browser.

Generic protocols are important to building interconnected commercial and open companies.

The internet had a lot of competing visions interesting the debate between Gopher and HTTP. Tim Berners-Lee, the father of the Internet, wanted to require two-way links. The lack of two-way links left room for Google to build an amazing search engine.

Often innovations are happing at the same time by multiple teams. For example Fairchild Semiconductor and Texas Instruments developed the microprocessor at pretty much the same time. It became a race to the patent office. There were multiple teams working on the first general purpose computers.

Most technologies have a "killer app" or key use case that spurs wide scale adoption. Gaming was pong. The transistor’s was the portable radio, popular among teens. The internet was email and web browsers. These killer apps are often looked down by the techs that know the most about the technology.

Conclusion

This was a great book that really helped me to fill in the gaps and sequence the jumbled collection of computer and internet history. I enjoyed the juxtapositioning of indiviuals to teams and private, govermentment, commercial, to open contributions.

General Comments

This book is like The Social Network story but for twitter instead of Facebook. It has the similar theme that once something is a hit everyone wants to be a part of it and take credit. The big difference is that there is a lot more public data and unlike Facebook, Twitter's original vision was murky at best.

The book isn't about lessons learned or anything of that nature. It simply seeks to piece together the origin story of twitter's founding. At the end of the day the book is a downer. All of the founders and early contributors seem to have been scared by event.

Why I read this book

The Founder's Dilemmas made a lot references to Ev Williams and Dick Costolo. I wanted some more background about how Ev had been able to start so many businesses that I had come to admire like Blogger and Twitter.

Additionally the founding seemed to be tumultuous and I am always looking for lessons that I can learn from other people's experience.

10 Takeaways

Jack Dorsey comes off looking pretty bad. He is pictured as a glory hog and obsessed about getting back in the club he was kicked out. He seems to be willing to stab people in the back to get what he wants. The book definitely portrays him as the villain. I wonder if the author has a personal beef with Jack. He had numerous references to the fact that Jack had lied or mislead to journalist.

Jack Dorsey's copying of Steve Jobs was pretty shameless. The book describes that Jack has adopted a "uniform" like Steve Jobs, a love for the Beatles, admiration for Gandhi and even co-popped many of Steve's quotes as his own.

Ev Williams is a very smart person. He is skilled at rallying a team to achieve a goal. The book points out his weakness of managing up (the board) and managing side to side (fellow leaders).

Ev Williams seems to have been undermined by his softness towards Jack by allowing him to have an email account, which allowed Jack to play the still part of twitter game, and by giving him a seat on the board. That seat cost Ev the CEOship.

Lack of hard conversations was a theme of the book. Ev doesn't just end Jack's time a twitter. Bill Campbell doesn't tell Ev that he is not doing well, in fact he lies to jacks face (if the book is to be believed). The board doesn't seem interested in developing the CEO instead they seem to prefer to cut the CEO down and start over.

I am amazed at how unprofessional the board was. Some examples: The erred email to Jack Dorsey about his impending fate. The lack of feedback to Ev. The susceptibility to Jack Dorsey's siren song. The firing of Ev seemed to be done haphazardly with the plan changing numerous times.

Have a script. While hard conversations were not often had, some of those on the board were very effective at delivering the death sentence via scripts.

The contrast between Jack's introspective view of twitter and Ev's extrospective view of twitter is really great. I know that I wasn't interested in twitter when it was seen as a way to share introspective thoughts. I am much more of an extrospective user.

The role of Biz as a conscious is interesting. I wonder how that really jives with the NSA's net.

Conclusion

It was a great read and a great follow up to The Founder's Dilemmas. I hope to avoid the drama in my startups between founders, early employees and board members.

General Comments

This book was a labor of love. It is born out of interviews and surveys of over 10,000 founders and creates a grid and outlines problems that they will face. It has been very helpful for me as I have considered founding my own company.

10 Things

The primary delima is the tension between wealth and control. Wealth generally takes the form of equity and control often centers around the structure of the board and who is CEO.

Founding-team dilemmas: relationships, roles and rewards.

Beyond-the-team delimmas: hires? investors? succession?

It is important to have hard conversations and to hammer out the details in writing. Failure to clarify will lead to pain later.

Why I Read it

The Personal MBA by Josh Kaufman was recommended to me by my good friend Dick. Dick is a master reader. What is a master reader? That is someone that reads more books in a year then most people read in a lifetime and continues to read more books every year. Dick knew of my desire to go to business school, he saw the book reviewed it himself and passed it along, for that I say, thanks.

My desire to go to business school was my main reason for reading this book. I figured it would give me a good overview of what they were teaching (which was not really the point of the book). If I found the info interesting I would continue my plans to go to B-school.

This book was a joy to read. It is beautifully organized and written from a top-down approach. I have read a number of books on business, but this was the first one that has ever given me a framework upon which I can analysis businesses and business ideas. This book helped me realize that I don't need to go to B-school to get the knowledge. Business schools don't have a monopoly on knowledge, just degrees. So unless someone wants to give me a free ride, I will stick with my Personal MBA.

Purpose

The goal of the book is to distill the basics of an MBA into a single book. Josh seeks to do this by creating a framework to analysis business through. In the opening chapter, he describes a business as being comprised of Value Creation, Marketing (Attention), Sales (Transaction), Value Delivery and Finance. These five things are accomplished by people and systems.

Format

I love the format of this book. To build his framework Josh decides to teach you all the key words used in business. Each chapter is a collection of mini-essays that are focused on a single topic, such as Value Creation. Josh is very good at helping you to frame your mind with every mini-essay. A mini-essay is comprised of a term, a relevant or illustrative quote, the body and a link to his website with a summary of the mini-essay. After each mini-essay you should have a firm grasp of the topic.

Other Points

Josh is not trying to put everything that you would learn in an MBA in one single book. The key point to understand is that he is giving you a framework for understanding business. The second point to understand is the Josh is promoting self-education. For those interested in continuing your self-educated journey, Josh has assembled the top one-hundred business books to read. It is a goal of mine to tackle most of the list.

Conclusion

The Personal MBA is a great book. It will provide you with a framework in which you can understand any business. If you are a self-learner it is a must read.

Over 2012, I am going to try to read and review at least 6 of the 100 books on his list. Next up on my plate is Thinking, Fast and Slow by Daniel Kahneman.

Chapter Summaries

Chapter 1 - Introduction

Chapter 1 is an overview of the book and an argument for the idea that you could get an MBA level of education from his book. He has the best summary statement of what a business is, rather than try to paraphrase it I will just quote it:

Every successful business (1) creates or provides something of value that (2) other people want or need (3) at a price they’re willing to pay, in a way that (4) satisfies the purchaser’s needs and expectations and (5) provides the business sufficient revenue to make it worthwhile for the owners to continue operation.

Chapter 2 - Value Creation

Chapter 2 is about Value creation. Josh defines 12 standard forms of value. I have found this list helpful because I can now evaluate both new business ideas and current business in light of the value they are trying to create for their customers. More than one form of value can be used at the same time, such as a gym which is a subscription and a shared resource.

Chapter 3 - Marketing

Chapter 3 is about Marketing. Marketing is about getting the attention of people that want or need the value you have created. He covers Seth Godin's idea of permission marketing. Good marketing should help educate people about your product. It is important to know who your target audience is. For example, if you don't have a baby you will not be interested in a car seat no matter how educated you are on the topic.

Chapter 4 - Sales

Chapter 4 is about Sales. Sales is about the transaction where money is exchanged for the value you have created. This quote gives a great overview of the sales process:

sales mostly consists of helping the prospect understand what’s important and convincing them you’re capable of actually delivering on what you promise.

Chapter 5 - Value Delivery

Chapter 5 is about value delivery. Once the sale has been made, you must deliver the value you have promised to the customer. The key idea for this chapter is: "Customers like to get the benefits of their purchases quickly, reliably, and consistently."

Chapter 6 - Finance

Chapter 6 is about finance. Finance is about understanding how money flows in and out of the company. In understanding this you can decided if the business is doing well or preforming poorly. At the end of the day a business must make enough profit to make it worth the owners time to keep it operating. Finance helps to answer this question.

Chapter 7 - The Human Mind

Chapter 7 is about the human mind. In this part of the book Josh shifts from the business to people. He will first help yo to understand yourself then others. Josh lightly interact with the modern topic of neuroscience.

The part of the chapter that helped me the most was the idea that we operate on perceptual control. Perceptual control is the idea that we work like a thermostat. A thermostat only does something when the temperature moves in or out of the range it is told to operate on. In the same way most people only do something when they perceive it is time to act. Different people have their thermostat at different levels. This is why not everyone responses the same way to the same situation.

Chapter 8 - Working with Yourself

Chapter 8 is about working with yourself. In this chapter Josh covers topics such as mono-idealism, cognitive switching penalty, most important task (MITs) and goals. He explains that the best way to change a habit is to create an environment conducive to change. The reason for this is that will power is quickly used so it is better to save you will power for things beyond your control that would derail your goal.

Chapter 9 - Working with Others

Chapter 9 is about working with others.

In this chapter, we’ll discuss how to work effectively with others. You’ll learn how to communicate more effectively, earn the respect and trust of others, recognize the limitations and pitfalls of group interactions, and lead or manage a team of people effectively.

I found his explanation of power helpful. Power can be used to influence others or force them to do something. If you use it for force people will resent you and they may comply, but more power will be required if you want them to do something in the future. Force is not sustainable. Influence can take more time to get people moving in the direction you want them to, but in the end it pays off because it is sustainable.

Chapter 10 - Understanding Systems

Chapter 10 is about understanding systems. Systems are the final topic covered in the book. Josh focuses on Gall’s Law which states:

A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: a complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a simple system. —JOHN GALL, SYSTEMS THEORIST

This is basically saying that the complex system you see was once much simpler and has over time to be as complex as you see it. Also, if you were to try and build a system as complex as the one you see that you would fail.

Systems describe the flow of resources in and out of the system. Stock is the resources waiting to be inputted into the system. Slack is the amount of resources in stock. All systems have constraints that limit the output of the system. Systems must have means to test the output and are always changing and adapting to new forces in their environments.

Chapter 11 - Analyzing Systems

Chapter 11 is about analyzing systems. Given Gall's Law that complex systems evolved from simpler systems that worked, it is helpful to deconstruct them in order to analyze and understand them. Deconstructing a system is the process of breaking a complex system down into understandable pieces.

Once a system is broken down (deconstructed) into its parts you can start to measure and track their performance. Josh spends some time explaining how to measure and how to decide what to measure. A lot of this was review from my time in A/B testing and web analytics.

Chapter 12 - Improving Systems

Chapter 12 is about improving systems. Now that you have analyzed the system you can hopefully improve it. To improve it you have to decide what you will optimize for, refactor or automate. His thoughts on automation were interesting. He covers some problems with automation such as the amplification of errors. If your automation is wrong it is going to amplify that mistake on every cycle.