May 5, 2018
Learning Something New
Part of my job is staying aware of all the new technologies and then evaluating them to ensure that things I work on stay on the best path in regards to our future technology stack. All this tech is usually labeled with a rather aggressive term: “Bleeding Edge“. I’ll use this throughout the post, so if you aren’t familiar – read up real quick (remember: keep learning…)
As I work with these different frameworks there are a few criteria I realized I was almost unconsciously applying to each platform I worked on. I realized since these were criteria I used when evaluating things it might be interesting to share and offer it to you to do with as you please.
Advice for bleeding edge technology
Remember that today’s bleeding edge code and methodology will be yesterday’s standard. However, I would recommend caution in this part because as with anything else, you have to pick the right horse (not a racetrack gambler myself but I think the analogy holds true). This can be tricky because it’s frequently very hard to know or to determine. But there are ways to make an educated guess.
Don’t get distracted by shiny objects
Even as I write the title to this section I feel slightly hypocritical even suggesting such a recommendation. I am very easily distracted. It takes constant attention and focus to ensure I don’t get off track. Things like ProductHunt, BetaList and others are constantly proffering the latest and greatest shiny new toy and they pull on my /need for new/. Fight this urge (as I do) until you have the free time to explore these wares for your own entertainment. Shiny objects don’t automatically equal great tools or even the best tool you should consider for implementation. For this reason I suggest not getting distracted by these at all.
Do listen to what others are talking about
The best source of information is the trusted source. Those friends, colleagues, and leaders you look up to. What do they recommend, what are they talking about, what are they excited about. Those are the bleeding edge things you should explore. These aren’t shiny objects (usually) when they are being talked about by others. There is confidence in a multitude of advisors. These are the tools you should keep an open mind towards.
That’s important, don’t overlook it. I’m speaking from personal experience here and I’m embarrassed to even mention it but I will for your benefit: I have ignored incredibly valuable advice more times than I care to admit because I failed to /listen to what they were excited about and predicting to be popular/. Don’t make this same mistake. Listen.
Problems using bleeding edge
But working with bleeding edge software is not always unicorns and butterflies. There’s all sorts of issues. Sure, you feel like a hero when you get something right but 99% of the time you’re absolutely about to blow a gasket because you can’t get it figured out. And it’s not always your fault even! Here’s a few of the common problems I’ve come across working with bleeding edge software.
Most bleeding edge software has terrible documentation
No joke, I know it’s common for engineers and technical circles to make jokes about how much they hate writing documentation. And then there’s the common line, “my code is so clean you don’t need documentation” (I love that one.) So user docs are usually non-existent and technical docs are basic at best. Don’t lose heart. This shouldn’t stop you from pushing ahead – just prepare yourself to become a master of your search engine.
Bleeding edge software changes constantly
I can tell you with authority, almost every single bleeding edge product I have used has experienced changes rapidly. In fact, there have been times that between the time I close my laptop in the wee hours of the morning and when I open it again only a few short hours later the code has changed, the method improved, or the result different. This can be absolutely exasperating. Again, don’t lose heart. The reward is worth the pain.
Okay, I’m going to stop at two, I’ll lose my own desire to keep “fighting the fight” if I continue to list the negatives and the problems. (I’m speaking tongue in cheek of course) So now that we’ve seen a few reasons for bleeding edge and a few problems we might encounter let’s look last at a few tips for working with bleeding edge software.
Tips working with bleeding edge
Working with bleeding edge is both challenging and rewarding. Overcome the challenges and you’ll find deep and visceral satisfaction with your successes. Here’s a few tips to help you.
- Seek out multiple sources for information: If the software has met the criteria listed earlier (not just a shiny object) then you’ll be able to find multiple sources, implementations, and most importantly (at least for me) several different examples.
- Move fast and break things: I recently wrote about the balance between startups and stability. This is one of those cases when you simply must move quick and break things. You’re more than likely working on a local environment, don’t be afraid to try something different. Use proper Git versioning and you can easily roll back changes that don’t work right.
- Be prepared to re-think your thinking: Sometimes you’ll find yourself unable to perform what you expected following your preconceived idea or strategy. Instead of giving up, or forcing a situation. Stop. Re-evaluate. Explore alternative ways to reach the same goal.
- Know when to walk away: Don’t become so entrenched in what you’re attempting to do that you abandon common sense. There will be times when you need to write your work off. Chalk it up to experience (You will have gained knowledge) and move on.
Your takeaway should be simple: Bleeding edge code is exciting and significantly rewarding, but the risks, pitfalls, and failures are inevitable. If you remain self-aware in this regard you will find the adventure very rewarding. (Sounds a bit like a cheap fortune cookie, and I apologize, but the sentiment is genuine.) The last word I’ll leave with you is a simple reminder. Sometimes all you need is a clear head. Get up, take a stroll, let your ideas and your problems soak for a bit, then come back and look at things with fresh eyes. Keep learning. Keep asking questions. I’ll leave you with a question: What is something new you’re learning now?
May 4, 2018
Mautic Release Strategy 2018
The Mautic community has a history of various release schedules and timings as we’ve sought to find the best strategy that works for our devs and our users. This tends to be one of the biggest ongoing challenges facing software projects everywhere regardless of the size. We don’t want to create a strategy that is too intensive for the users to maintain and stay current. We don’t want to stuff too much into a single release and hurt our testing strategies or sacrifice our QA process. And on the other end of the spectrum no one wants to wait for years for a release.
This constant back and forth struggle will more than likely continue and I don’t anticipate that we will solve it here today. But I want to share what I believe is the best release strategy for Mautic today.
Side note: Mautic follows semantic versioning. If you need a refresher on what this means, read this article. In summary, Mautic releases three types of releases (X, Y, and Z) and our versions are numbered accordingly: X represents a major release (1.0, 2.0 etc…) this release may break backwards compatibility. Y releases are minor point releases (2.1, 2.2, etc..) these releases introduce new features but maintain backwards compatibility. Finally, Z releases (2.1.1, 2.1.2, etc…) are sub point releases which address bugs and fix issues without introducing new features.
Now, rather than going into the historical study of what Mautic has done in the past we’re going to look at a strategy for future releases. I’m basing the following on discussions I have held with many in the community, observations from other successful open source projects, and my personal experience releasing software to large audiences. I
Major Releases (X) are released on a bi-annual to annual strategy. This time frame may fluctuate depending on the volume of work to be undertaken and the code to be modified. Sometimes this process may require extensive testing and significant discussion. Due to these factors major releases are scheduled for either every 6 months or 12 months.
Minor Releases (Y) are released on a monthly basis. There isn’t a set in stone date specific for these releases either, but rather a relative time. Minor releases, when they are released are always released on the last Tuesday of the month. Some months may not have a minor release.
Point Releases (Z) are released bi-weekly. These releases are quick, really quick. These releases only touch bug fixes. There are no new features being added through a point release. Some of these releases may have only a handful of fixes, and others may be packed full of quick fixes. These point releases should be easy to apply and even easier to test.
This should give everyone a clear understanding of what we are doing and when we release new versions. Now since we’re all on the same page let’s get out there and push Mautic forward faster.
Recently I wrote about Mautic 3.0 as the next major release for Mautic. While this is an important step forward for our community and our code there’s something that we have to be very mindful of in the process.
Mautic 3.0 will not happen overnight. While that phrase may seem obvious here’s what it means. Just because we’re talking about and building excitement around the next major release does not mean we are ignoring Mautic 2.x or discontinuing development on the next Minor and Point releases of Mautic. Because the time to development for a major release undertaking (like Mautic 3) will be significant and lengthy we won’t be halting development on the current series during that process. I told you it sounded obvious but it’s worth remembering.
Mautic 2.14 is the next release to be announced and it includes a great number of new features and bug fixes. All of these need to be tested and applied before we can merge and release. And then we will begin working on 2.14.1 (or 2.15 depending on the features we want to include as a community).
Simply put, even while Mautic 3 is exciting and on the horizon we will continue to fix issues, release new features and improve Mautic through the current release 2.x until 3.0 is announced Stable. Are you interested in learning more about how to get involved in Mautic? Testing the next release is an excellent way to start to learn the codebase. Need help setting up a testing environment? Let me know and I can point you in the direction of good resources.
As we move forward in our community-lead releases it becomes more and more important that we test and re-test each new feature and each bug fix to ensure it meets the quality that our community demands.
May 2, 2018
May 2, 2018
Headless Marketing Automation
Yesterday I released a blog post entitled Looking Ahead at Mautic 3. This blog went into great detail on why I believed a Mautic 3 should be considered next on our product roadmap and then I outlined the problems (as well as some solutions) that we could solve with this next release. One of the features I shared received a few more questions than the others so I think it deserves a little bit of specialized attention.
An API First Headless Application
First of all can we all admit that is a mouthful to say? We can break it down and make it a bit easier to understand and then let’s dig into what it means and why I believe it’s a valuable step for Mautic’s future.
API First implies that every function of Mautic, every call to the database, and every interaction has to be “call driven”. This extracts the front end user-experience from the data layer (or API). This also means that the only way that the user interface (design, page layout, display elements) interacts with the data is through a series of API calls. These calls are the glue that holds the data together. API first means the system has been created in a way that the API is the only way these things happen, and every API return is formatted accordingly.
Headless: This concept is a funny one to discuss when working in software and applications. We’re not getting into the Ichabod Crane story /(though admittedly for some reason a character on a horse holding a pumpkin is inevitably the first thing that comes to my mind)/. In the software universe the concept of headless means something quite different. Here’s a definition:
…the front-end is a stand-alone piece of software, which through API communicates with a back-end. Both parts operate separately from each other, and can even be placed on separate servers, creating a minimum version of a multi-server architecture. The bridge between both parts is the API client. The endpoints of the API are connected to each other….
— Headless software – Wikipedia
Earlier in that same page the first sentence distills it down even further. Headless software is software capable of working on a device without a graphical user interface. (Wikipedia)
By these definitions we see that headless makes sense particularly when discussing things such as API first.
Now, let’s take that thinking and put it into more of a practical application. Why is a headless marketing automation platform useful and desirable. Why should Mautic consider this something worth undertaking in the next major release of our software? Here are my three main points to justify such a task.
In my opinion, the first reason to consider undertaking a task of this size is based on the concept of improving our flexibility as a platform. If our goal is to be “open” (more on that later) then the best way we can do that is by having a platform that is flexible.
Flexibility, to me, means continuing the great work we stated where a business is able to use the software in a way that is best for their business (rather than the situation that 90% of other software operates). We want to give people the ability and the flexibility to be in complete control of their information, their data, and their software. Software flexibility comes in a variety of ways; in Mautic we’ve considered our platform flexible from the very beginning. Custom fields, highly customizable and configurable campaigns, and the ability to create software practices that match a particular business have been part of the product from the start.
The next logical step in this effort to be flexible and to continue to push the limits and lead in this area involves looking deeper at other areas where we can implement more flexibility. Separating the functional layer from the user interface allows just that. A platform where you can consume the data from any interface you desire means you have a marketing automation platform prepared for the future. Your data, made available in any manner you need. API first, headless marketing automation gives you the power of marketing automation in any visual, end product you desire.
The second reason I believe we should focus on a headless approach to marketing automation is for future sustainability. I don’t mean sustainability of Mautic necessarily, but more importantly stability of your data. If you are locked into a single user interface then you’ll find yourself duplicating data, moving between different databases and potentially losing information. You’ll also be tied to a more narrow focus and implementation strategy for your marketing automation because you’ll only be able to use Mautic in the manner envisioned by the Mautic community and its developers.
While this isn’t necessarily a bad thing (we’ve got a pretty good roadmap and vision for where marketing automation should be), I believe the ability for a business to use their data in multiple outlets gives a sense of sustainability to the database and security in knowing the functional aspects of the software is capable of being implemented in a variety of ways. You move from a singular marketing automation-platform-only to a situation where your data (and your marketing functionality) is able to be consumed everywhere by any other service or device.
The final reason I believe that a headless marketing automation platform is beneficial is for the sake of being more open. Mautic is built on open source. We are steeped in the knowledge that our code is readily available to anyone to review, to use, and to improve. This means that every function is understood (or could be), and that every action the software performs is easy to observe. If we continue this line of thinking it stands to reason that in much the same way, the data, and the output from those functions be easy to view, to use, and to improve. By extracting the user interface from the software and making the underlying infrastructure (API) available to be consumed by other sources we make Mautic more open.
No other marketing automation platform gives you this API-first, headless ability. You are essentially “locked in” to their user interface and their experience. (And we don’t even need to start talking about the limited API abilities of marketing automation platforms in general.) Closed marketing automation constricts and restricts your abilities as a marketer. You are forced to understand their interface, and to only view your data within the bounds of what they believe is marketing automation and how they believe you should access your information.
Mautic has always sought to do more, to be more. To provide you access to everything — after all, it belongs to you. Shouldn’t it be able to be used any way you want?
For these reasons I believe it is in best interests and the future success of Mautic to become API-first and truly headless. I hope this shares my thinking in a bit more clarity and if you were unsure before what headless meant you now have a good understanding about the topic.
If you have ideas or other ways in which a headless marketing automation platform can change the landscape and improve marketing I would love to hear them. We’re building this together, our robust and global community of marketers and developers working together create Mautic software and we have the power to envision and create the future. We are changing the landscape and we will continue to do so. It’s an exciting time to be in Mautic.
Special thanks to Don Gilbert for his help with this post.
May 1, 2018
Looking Ahead to Mautic 3
Mautic 1.0 was released out of beta on March 10, 2015. Then Mautic 2.0 was officially released on July 5, 2016. And that’s where we have continued to make improvements. This means we have been improving and iterating within the 2.x release for almost 2 years. This holds both positive and negative connotations. I’ll start with the positive.
This duration of a major release demonstrates the significant improvement to overall platform stability we have seen. It also speaks to the flexibility of the existing platform to be improved and built on top of, without major breaking changes needing to be introduced.
But there are also negatives resulting from a lengthy release cycle like this. We’re building software for the internet, the rate of change of software on the internet is growing exponentially; the technology is changing; and the landscape is shifting — drastically. By remaining in a single major version we limit the ability to take advantage of those technological advances (if we are unable to make those changes without breaking backwards compatibility).
I’ve discussed the versioning for Mautic previously, if you want to review that information but the tl;dr is we use semantic versioning.
For these reasons the time has come to begin exploring the benefits (and potential downsides) to beginning development of a new Mautic 3.0 release.
The first thing we need to identify is the reason why we would want to move forward with a Mautic 3.0 release. We don’t take these large transitions lightly and there must be sufficient difficulties needing to be overcome and/or new features made available by such a move. To that end, the following are the areas (in part) where a 3.0 release may prove beneficial to the Mautic product.
This might possibly be the greatest reason for beginning our discussion around a Mautic 3.0 release. Currently, Mautic requires Symfony 2.8 and only works within the 2.x series. This series of Symfony reaches end of support for bug fixes in November 2018. Meanwhile Symfony current LTS is 3.4.9 and current released version is 4.0.9. This is a very large problem that we need to resolve. A migration from the current Symfony requirement to even the long term support version (3.4.8) requires a large overhaul to our codebase and framework due to some of the deprecated methods. (I can elaborate on this in more detail in a separate post should it be of interest)
We’re learning as a community through this process and some of the design/architect decisions we made in the early days of Mautic have been improved upon and reconciled so as to not lock us in to specific releases of a framework in the future. Regardless, this upgrade plays heavily into the remaining evaluation of an imminent restructuring and release of a Mautic 3.0 version. And as such opens the door for further discussion around framework implementation.
The first item to be considered as an issue that Mautic 3.0 is capable of resolving involves the front-end interface. Mautic’s interface has remained relatively consistent – even through the Mautic 1 and Mautic 2 series transition. But as mentioned, the existing interface has been in place for nearly 3 years now. This clearly points to the success and clean approach that we took when designing the initial Mautic interface. However, at this point it’s time to consider an update, or facelift, to the user interface.
The frontend modifications are more than just surface level though. Currently Mautic 2.x frontend code is deeply integrated throughout the codebase. While we attempted to isolate the code to the /views folder within each bundle we have inevitably had HTML generated and output from other locations as well and this does not lend itself to a clear separation of frontend and backend. Only with a Mautic 3.0 can we overcome this and resolve this intermingling of views.
Mautic’s API is fairly strong, and absolutely open and flexible – you can review it here: https://developer.mautic.org. But as mentioned in the first item above, Mautic is not truly architected as API first. It pains me to say this because our API is so strong, but it’s not complete. There is more we can do. We need to take our API to the next level and make it truly headless.
The modifications necessary to our API to enable this would also require modifications to many of the functions and classes within Mautic. Touching this many areas of the system is risky and poses additional potential problems which is best mitigated during a major version release.
One of the greatest issues we’ve faced with Mautic 1.x and 2.x has been implementing at scale. I’ll address speed in particular in a future point but there are two main contributing factors (primarily) to our latency. Our current database ORM structure is one of those factors. Please understand what I’m suggesting. I don’t believe the ORM is necessarily the problem (though there have been open discussions about the implementation of an ORM as causing speed issues in other situations). More so I am referring to our specific implementation of Doctrine ORM. Many places suggest that ORM should be used for smaller projects with smaller amounts of data or for jumpstarting development as a scaffolding before moving on to a full-fledged data schema.
The three greatest problems with ORM-based development are as follows: First, performance degradation due to metadata, DQL, and entity processing (this adds greater overhead than simply fetching the data). An ORM often makes sacrifices in native performance features of a specific platform because of the way it “forces” a one-size-fits-all approach.
Second, Doctrine does a lot of things behind-the-scenes and without any control by the developer. In these instances, the ORM is treated as a bit of a “black box” where functions go in and data comes out with little to no idea how the actual queries are structured, or how they can be refined. Hours upon hours are quickly lost attempting to debug this data and extrapolate what’s happening “inside the box”.
The third point is closely related to the first: an ORM is quite limiting from a developmental perspective. You are unable to properly optimize your database platform for your specific use case and all queries are in this way forced to be “basic” while at the same time the associations are forced to be overly complex due to the way that the ORM manages the relationships.
The second factor which has greatly impacted our speed relates to our entity hydration. The method by which we make our queries, hydrate the results and return them is often bloated and more than necessary. As a result of this overkill we experience latent page loads. Evaluating our use of entity hydration suggests we are doing far more than we should be and this drastically effects our API call query time.
This affects our API call time due to the way the entities are hydrated. Let me explain, when we fetch and format an API payload we create DQL that Doctrine then translates into SQL and then hydrates those entity objects using \Reflection which we then pass through a serializer that reverse-engineers the entities into arrays and removes the elements we don’t want. This process also involves going back into nested associations and removing those unnecessary items as well. Finally we then package up that outcome, encode it as JSON and return it. (Can you say overworked?)
This same process also goes into our forms and the majority of our UI output. Most of the time we only desire the data, but unfortunately we are returning full objects of data that’s been converted a half-dozen times into different PHP objects and arrays before it ever reaches the UI.
Our integrations is one item that understandably needs improvement in Mautic (either 2.x or 3.0). This is as a result of our incredibly fast-paced growth and our attempt to stay ahead of the curve. There’s no denying that as a result we sacrificed some of our “code beauty”. If you haven’t explored our integrations code existing in Mautic then I’d recommend taking a look. What has happened is understandable and yet inexcusable. We’ve added far far too much to the core package and not properly abstracted the integrations as they should be. This failure to decouple properly leads to several problems.
First, this makes plugin upgrades inextricably linked to a Mautic release. This means that at no point are we free to improve upon and release new versions of a particular plugin without waiting until the next version of Mautic is released. There’s no reason to continue this discussion as the problem here is blatantly obvious.
Second, the current integration situation adds bloat to core. There is no reason to bundle plugins with Mautic core while enforcing other plugins to exist in a plugin repository (or Mautic Marketplace) to be downloaded and installed by the user. All plugins should function the same way, reducing the overall Mautic footprint and providing a clear path for installation of desired plugins without extra baggage for unused or unwanted integrations.
While there is a path where integrations can be improved upon iteratively within the 2.x series, this is yet another factor to be weighed when exploring the potential of introducing a 3.0 release.
One final point to address when discussing existing challenges relates to the overall platform speed. I think it fitting to close this section with this point because ultimately this plays a major factor into the roadmap for Mautic in the future. Currently Mautic performs quite well in a variety of environments.
Mautic has been tooled very well to work for small to medium size databases and while the functionality services every business equally there were some limitations that began to emerge when working with large-scale database implementations. This had lead to a slowdown of various functions within Mautic and requires workarounds to improve.
Secondly, due to the entity hydration and Doctrine ORM implementations done within Mautic (partly to speed up release timing and create software faster) the overall architecture suffered. This isn’t immediately noticeable but does come to light with larger datasets and more intensive query objects (e.g. within campaigns or when creating complex segments).
Lastly, all of the above speed-related issues roll up into a degraded user experience. The goal has always been 300ms page load speeds within Mautic. While this may seem aspirational it does not necessarily mean its impossible. A rethinking of the underlying architecture gives us the opportunity to explore ways to achieve these aggressive goals and deliver an outstanding user experience.
Now that we’ve highlighted several of the challenges we’re facing in Mautic it’s time to explore how we solve them. This involves keeping an open mind and looking at every possible solution path. Some of these may be far-fetched, some may be irrelevant and some may seem overwhelming. The goal in this section of the document is to review all of them with an open minded approach.
I’m going to outline the four ways I see this being addressed and hope this serves as the beginning for further discussion. It’s also important to keep in mind that these solutions are not completely mutually exclusive. There is the potential for a combination of these solutions to be implemented for the final desired result.
There are both pros and cons to each approach and rather than attempting to highlight those options in this post I will leave that for either a future post or for group discussion. Instead I’ll merely outline what each solution entails so we have a better understanding of what each represents.
Re-write on existing framework
The first option we have is to rewrite on the existing framework. At first glance this sounds the most logical and least stressful of the solutions for Mautic 3. This would involve a significant review of the existing code and a harsh look at what should be re-written or even removed. At this time, there’s not a definite answer on the amount of work involved with a framework re-write on Symfony and this will need to be explored to have a better understanding of the level of effort involved.
Selecting a new framework
A second consideration at a major release point like this is to re-evaluate the framework that has been incorporated so far and determine whether it is the best framework moving forward. This also involves a great deal of work (obviously) as the code would need to be re-written. This is precisely why I suggested you keep an open mind at the beginning of this section. We need to objectively evaluate what is the best solution with all things considered. We must step back from looking at just the code but consider everything in its entirety that would be involved with something of this scale.
Another area where we must evaluate current Mautic 2.x versus Mautic 3.0 is the database architecture. Our existing structure has served us well but if we are exploring the undertaking of a 3.0 series we are defining a release where we have the opportunity to make significant improvements and/or adjustments to the database architecture as well.
Currently our table schema has presented a few problems (though minor) which may be served well by a refresh. This will allow us the opportunity to improve indexing, table columns, and even the overall structure of data. (Need an example? Currently we refer to contacts, however the database table is called leads, while this may seem minor it is a remnant of a speedy release earlier in the 2.x series that should be rectified).
API first architecture (headless)
The last item I recommend be considered as we explore this stage in our development cycle is a return to the topic of API’s. I mentioned this previously in the problems definitions section. We must reconfigure our existing structure and modify our existing product to be API first. This means we need to evaluate every endpoint, identify which are missing, and extract end-user code from the output (i.e. all responses should be JSON strings).
Mautic 3.0 is the first major opportunity we have to make this improvement. Regardless of the framework selected (after evaluation which we will discuss next) this is the time we should make the improvements to our API. We must make this a priority in order to ensure that Mautic is properly headless. (Interested in why headless is important? Let me know and I can make a separate post describing the value.)
Next comes the step where I need your feedback. I’m looking for end-user feedback, always, but more importantly I would like technical feedback on specific solution outcomes. This discussion has begun in the core slack channel of our Mautic Slack. I would encourage you to join the discussion there should you be interested. While opinions are welcome, those with use cases, specific data, and or use cases based on historical data will be given greater credence.
Let’s explore a few of the items to be handled by this evaluation process.
Whenever there is discussion over switching a framework there is usual an instant and visceral response. This response comes from a good place but often times is not backed with the correct factual information. As a result, during the evaluation process in order for everyone to keep “feelings” out of the equation (as much as humanly possible) I want to make sure we back up our opinions with benchmarks and statistics (again, as much as humanly possible).
I recognize that the best benchmark is one that involves our own software written in different frameworks and other factors all kept as control in order to provide a clean comparison. I also recognize this is highly unlikely and presents numerous challenges and as such we must do our best to mitigate these other factors from contributing to the result. This doesn’t take into account the impossible undertaking of writing the same code on multiple frameworks simply for the purpose of extracting benchmark data.
Based on this information it is deemed appropriate to find existing benchmarks for other platforms built on each of these framework at various degrees of scale and using those as a baseline for comparison.
Specific use case evaluation
Once we have some basic benchmarks we can begin to explore specific use cases and implementations. This is where we take the best of the best and begin to build out a plan for how the various pieces might work together. Again, the goal is a non-subjective approach to the information and presenting varying use cases for evaluation.
This should not be extremely time-intensive but rather a precursory step prior to the next phase where a proof of concept is mocked up.
Proof of concept
This step is often where I get most excited myself. Sometimes others may see me arriving at this step and not fully realize I’ve worked through all of the previous steps already. I trust in this particular instance we will make this journey together and share in the excitement of a proof of concept.
As a word of caution, the proof of concept is not a final or even functional application. We simply want to test our hypothesis and theories that we have drawn from the research, benchmarking, and use case evaluations. This is the point where we create code. We build out an example of what it would entail to create Mautic 3 using the solution as defined.
There are several key things to look for with a proof of concept. Code style, readability, implementation methods, and database architecture. This proof of concept should give us visibility into each of those areas as well as a good understanding of the implications of this solution as it relates to page speed and the API results speed.
Subjective item scoring
The last part of the solutions exploration involves scoring the results from each of the solutions identified on a number of criteria. This will be certainly challenging for our community based on the first word of the heading: Subjective. It’s never an easy task (and an oft avoided one) attempting to rank outcomes where the answer is not a clear black-and-white, yes-or-no. Instead we have to consider all potential benefits and detriments to each solution. We have to weight them according to their perceived merit and potential value.
There are a number of factors that contribute to the success of a solution and while I have highlighted the technical solutions first in this particular post there are others to be considered as well. I will be writing an additional post that will focus on the extraneous factors and how they affect the Mautic product either through a 3.0 release or implementing an update to the 2.x series.
So, now that we have this outline for what we are looking to accomplish and evaluate from a code perspective with a Mautic 3.0 release potential we need to begin focusing on how we best accomplish these goals. Here are the first three steps I am recommending we take as a community as we push forward with exploring Mautic 3.0
Organize a team
First, we need to organize an evaluation team. This should be a team with technical ability primarily as the majority of the items listed above are highly technical in nature. There will be a time and a place where the greater community will be able to voice their input and opinions and the subjective feedback from the community at large will be desired at that time. This initial team should be developer-centric given the tasks at hand.
Formulate an evaluation matrix
Once we’ve gotten a team organized and we have carried out the steps for the potential solutions listed above we can begin to draw some results and conclusions. The best way to do so is to compare an evaluation matrix where we can properly identify the pros and cons for each solution recommended. This will help to remove the subjectivity and allow us to focus on the best and most strategic paths forward.
When creating this matrix we will also consider additional items such as time to implementation and community involvement. In addition to picking the most technologically sophisticated solution we must also match that with the existing skills of our community and determine if we need to reach out to other communities for assistance as we seek to grow properly.
The evaluation matrix will not be evaluated at this point and a conclusion drawn but rather be the culmination of the work done to date and distilled down to a meaningful format which can be easily shared in the final step.
Prepare an RFC
The final step in this evaluation of the Mautic roadmap involves preparing an RFC for dissemination to the community. This is where we seek to get feedback, support and buy-in from everyone. We want to ensure that our community as a whole agrees with the decision made and more importantly agrees because they have received the proper factual information. This is where the evaluation matrix will offer a great deal of insight and information.
This will be a great milestone for the Mautic community as we continue to push the boundaries on marketing automation and the technology used in our software. We are capable and equipped for defining the future of the marketing automation space and this is our next big step in that direction. I hope you can tell the excitement I have not only for the outcome but also for the journey as we grow. I look forward to seeing what comes next!
Special thanks to Alan Hartless for his feedback to this blog post
April 29, 2018
Saelos Sunday Update
Well this is an exciting update to share. Saelos was announced and released on April 15. Today is April 29, exactly 2 weeks later. Because everyone is busy I’m sure you haven’t been able to keep up with the progress the same way that I have been so I figured the best thing to do is to write a short update post to give you a sort of a status update on how things have been progressing.
This is of course very early beta software (some would even call it alpha, simply due to its newness) but the status of the code causes me to suggest that we have moved much quicker into beta software status.
These numbers are constantly changing as you can imagine so please don’t put too much faith in any one metric. Rather I’d recommend looking at them as a brief snapshot or glimpse into the growth being experienced. And let me be the first to tell you that growth is evident and exciting. Saelos is moving along at an excellent pace and perhaps even more exciting growing we’re moving forward in a very sustainable fashion. You’ll see why after I share a bit more information.
Okay, here’s a quick stats list:
- Downloads/Sites Created: 264
- Releases: 5 Beta Releases
- Slack: 22 members
- Website: 49 members
- Pull Requests: 0 open / 7 closed
Wow, those types of numbers and to be only 14 days old is quite exciting. Perhaps the last statistic is the one that speaks the most to me. As an engineer at heart I am always looking for indicators that other developers are also interested in and willing to contribute to a project where I am involved. The number of pull requests submitted by community volunteers in the very first couple of weeks of this project is indicative of several things – including the ease of readability of the platform and code.
In fact, even better, I saw 4 community created pull requests in the first 24 hours! (Of course a couple of these were minor issues, but still, the point remains the same: the software is easy-to-read and modify.)
I should also mention the new website just briefly since I realized I never shared anything about that earlier (I’m not lying, the time is just flying by these days). I also launched https://www.saelos.org this past week which gives an online home for conversations, announcements, and other things related to Saelos. You should join in so your voice is heard and you’ll be able to share your ideas for future releases of Saelos and begin getting involved yourself (Are you interested in documentation? If so, we should talk).
Beyond the highly notable achievements listed above occurring within the first 2 weeks of release an additional exciting contribution came in the work of Luiz who has already created and taken lead for maintaining a Saelos Docker container. This makes installation and setup of a new Saelos instance incredibly fast and simple (and significantly encourages new users to try Saelos).
The next obvious question is “now what?” What release comes next and when? This question is a little harder to answer simply because when dealing with beta software new issues or uncovered all the time and the desire is to create as stable a product as possible before releasing a 1.0 stable. Currently there are about 10 issues open in GitHub but of course they vary in difficulty and time to implementation.
The next more imminent milestone is the release of an RC (Release Candidate). At this point I’ll have a pretty good idea of what the 1.0 Stable will look like and this release will be a pre-packaged version to begin fixing any last minute bugs before release. This RC should be fairly close to stable. At the moment I don’t have a solid date for that release because we may iterate through a few more – Beta releases first as we knock out issues and make system improvements.
The next beta will more than likely be released next Friday afternoon or Saturday as time permits. I am hopeful to see a number of the open issues resolved with this beta and I can share those fixes as they are merged.
The last thing I’ll leave you with for this quick update post is a very simple and easy call-to-action. If you like this content and want to be kept in the loop regarding all things Saelos then you need to fill out this short form and you’ll get an update newsletter direct in your inbox each time once is created.
That’s it. I’ll do my best to keep the Saelos Slack channels updated as well as the newsletter and if you are following my blog here, you’ll also get updated whenever I post something here too.
Have a great rest of your weekend and I’ll see you in Saelos!
April 28, 2018
April 28, 2018
April 26, 2018
April 24, 2018
Mautic and GDPR
One of the hottest topics circulating the internet these days is the upcoming legislation surrounding GDPR being put into effect on May 25, 2018. Companies of all sizes are closely watching what this legislation means and taking a hard look at their software to see what is affected. Given the hefty fines, this scrutiny and concern is completely understandable. Mautic, as an open source marketing automation platform and community also holds these concerns and possibly to a much higher degree than others. Our community has hundreds of thousands of businesses running Mautic, and our software is powering their marketing automation effort and customer data collection.
As a result, Mautic is of course highly interested in not only understanding, but also complying with any and all new regulations put forth that promote openness and transparency. Interested isn’t really the right word – more like /actively engaged/. We are dedicated to ensuring that our software not only complies but stands out as a model by which others gauge their own level of implementation.
Before I get too far into those details, let me give a very brief refresh on what GDPR means and what it represents.
GDPR, or General Data Protection Regulation, is a new European regulation that enforces the protection and accessibility of personal data for all European citizens. Read more
Four basic user entitlements
- Every individual is allowed to know what data is kept by any business; why that data is kept and for how long it’s stored by the business.
- Every individual has the “Right to Access” their own information and data.
- Every individual has the “Right to Data Portability” of their information (they can request a copy of their data as it’s stored.)
- Every individual has the “Right to be Forgotten”. (Request a business change and permanently delete any stored data)
Now you may be one of the shrewd ones and recognize a specific phrase in the original definition: that’s right the word European. But if you’re reading this from the US, you’re not off the hook just yet. Keep reading.
This new regulation applies to European citizens regardless of where they are located at any time. US companies must abide by these guidelines for any and all customers, contacts, accounts associated with the European Union.
There is one last aspect of the GDPR we need to consider before getting into some specifics. What is personal data? That’s right the GDPR is concerned with the data so obviously we need to understand what that data is. And this is where things get a little bit muddy. Here’s a short list of the most commonly recognized types of information that falls under this regulation.
- Online identifies (IP addresses, mobile device IDs, browser info, MAC addresses, cookies, account IDs, and other forms of system generated user identifiable data)
- Racial or ethnic origin
- Political opinions
- Religious or philosophical beliefs
- Trade union memberships
- Health data
- Sex life or sexual orientation
- Past or spent criminal convictions
- Genetic & biometric data
- Location data
- Pseudonymized data
Whew, what a list! Now that we have a bit of a handle on what the GDPR is about (at least at a high level) and you may be sufficiently uneasy about your current software I want to share how Mautic as a product is already compliant and continues to seek the best and most proactive approach in these new guidelines.
Based on the four principles listed above let’s look at an optimal Mautic configuration that complies with them. There are two options that existed for Mautic and my desire was to set a precedent for our community, our product and the entire marketing automation space. As I dug into this issue I met with more individuals in our community and in business than I could mention. My desire was to get a better understanding of the regulations and their implications myself. And I am excited to share with you the conclusions I’ve come to. And of course I’m always interested in more discussions on the subject and welcome the opportunity to chat with anyone that has questions, ideas or thoughts on this subject. It’s an important one.
Okay, with all that said, let’s dig in. As I mentioned there are 2 paths we can take. The real trouble lies in the uncertainty. I alluded to it earlier when I mentioned the “muddy” aspects of the data. There is a balance that must be struck. Mautic should be proactive and a leader in the implementation of these new guidelines. But time spent on unclear work, or without good direction is wasted and the time of our community developers is far too important to waste.
In order to make the absolutely best use of the developers in our community’s time; and in an effort to make the wisest decision in time and resources I believe the smartest strategy is to take a dual-prong approach. This is exciting because Mautic software can be easily configured for GDPR regulations today with just a few simple steps.
Instant GDPR Compliance
This dual prong approach involves an immediate step and a longer term software feature enhancement. The first step is quick and relatively painless. And with the implementation of a few simple changes to how you currently setup your Mautic instance you’ll be instantly compliant!
Here’s all you will need to do:
- The very first thing is to plan how to convey and accept explicit data collection consent, usually done through a focus element in Mautic, this step is potentially already being done in the case of cookie collection. As such you may only need to modify the language of your existing focus item.
- Configure two new segments within your Mautic software, name these segments, Request to be Forgotten and Data Requested.
- Setup a new form that allows an individual to submit their name/email and select the options they wish to submit (Request for Data, Request to be Forgotten)
- After each form submission associate them with the correct segment and take the necessary steps to either delete the contact from the database or export their record to a CSV.
- Notify the individual of the action taken.
One of the biggest (and simplest) mistakes I hear is people getting caught up in the thinking that this process needs to be instantaneous. While of course each request does need to be handled with expediency, nothing states it needs to be automated. To the best of my understanding, the above 4 step process gives you a GDPR compliant Mautic! Congratulations, you can sleep a little easier.
GDPR Mautic Software Improvements (Future)
Of course being compliant in this manner is only the first of the two-phase strategy. The second involves some modifications and improvements to the Mautic software. And while this is yet to be fully determined I can share a few ideas that have been circulating.
- New configuration section for GDPR.
- Configuration options that add the necessary acknowledgement checkboxes to forms automatically.
- A semi-automated contact deletion process
This is just for starters and only a few thoughts I’ve had as I’ve listened to some of our European community members share their concerns and their ideas. As I stated earlier I would love to speak with you and continue this discussion. Mautic is committed to being a leader in this regard and demonstrating to others how proper GDPR should be handled. We have the knowledge of a global community and the power of a flexible and open source development platform enabling us. Our software can be proactive and our software can demonstrate how others should consider GDPR compliancy. I trust this helps, join our Slack channels to learn more and make your voice heard.
April 22, 2018
April 22, 2018
April 21, 2018
Saelos CRM: A Technical Advantage
One of my greatest undertakings of this past year has been the development and subsequent release of the Saelos CRM (still in beta of course!). I was able to use my knowledge and experience gained from Mautic (a world-class marketing automation platform) to create a complementary platform for relationship management. I expect if you’re reading this you’ve probably already read the original announcement post (if not, go check that out before continuing). Otherwise, let’s take a few moments to explore what an open CRM looks like and what it means for the future.
By the way, if you haven’t looked at [Mautic](https://www.mautic.org) you should definitely check it out. The open source marketing automation platform is second to none and does incredible things for your marketing department.
The purpose of this post is to showcase just a bit of the Saelos CRM technical advantage. I’ll touch briefly on the methodology and practices implemented as well as the reasons for various technical choices made along the journey.
As a brief overview, Saelos has been written in two distinct sections. A frontend and a backend. This was done to make Saelos completely headless. (I’ve jokingly made the comment that not only did we create the first headless CRM, but also the first bodiless CRM as well – I’ll explain that in more detail later in this post) Creating a CRM in two sections like this allows for the absolute maximum flexibility and customizability in the future by an incredibly wide variety of use cases.
By default Saelos runs smoothly and seamlessly as a single app, so for most users this distinction of “frontend” and “backend” will hold little meaning. But for those more technically minded or for those use cases where it is required Saelos is capable of meeting those advanced requirements.
Without any more delay, let’s start by exploring the backend system for Saelos.
Saelos backend (not to be confused with admin or config) is the code platform which interacts directly with the database. This backend manages all the code and logic related to the data and then provides a full API by which the Saelos frontend (and other systems) can interact with this data.
Saelos was written in the “API first” mentality and as such every functional aspect of Saelos is controlled and manipulated via an API. That’s a pretty big statement and gives us the ability therefore to offer Saelos as a completely headless app. Any interface can interact with the CRM simply by referencing this robust API.
Finally, here is a quick note on the technology involved with the Saelos backend. This platform is written in Laravel (Laravel 5.5) as the base, and follows the 12 Factors of recommended methodology for apps.
The Saelos frontend is the UI platform which the user interacts with directly. This visual interface makes functional calls to the API to return the information in a user-friendly format. This interface is cutting-edge and incredibly intuitive. And that’s not just marketing speak. The Saelos UI responds instantly and is declarative as well as component-based.
The Saelos interface is able to cache responses, storing data in the client’s browser for improved query speed, only making server calls when the data is changed. Doing this takes full advantage of modern browser local caches and makes page load speeds lightning fast (and in many cases non-existent).
Just as the backend is able to function independently of the frontend; so the UI can function independent of the backend. This means, as I joked in the beginning – Saelos CRM is completely bodiless. You can take the Saelos UI and connect it to your data source provided your admin backend implements the same API endpoints.
Again, as a final note on the technology involved. The Saelos UI is written completely in React. This compiled with axios, redux, and lodash provides one of the best frontend platforms available today.
The outcome or result of this approach to a modern CRM and sales enablement platform is abundantly clear. Lightning fast, incredibly flexible, and infinitely customizable. No other CRM or sales enablement tool gives this much freedom. Saelos, a single powerful application, with the ability to exist as two complete platforms, capable of being independently as needed.
To be clear, Saelos does not replace Mautic in any world. Instead Saelos is a beautiful and perfect compliment to an outstanding marketing automation platform. The lessons learned from Mautic have been applied to make Saelos incredible, but it doesn’t stop there. Already, Saelos is giving back, allowing the Mautic community to begin expanding and improving our code for version 3 (already in the works!). This is a beautiful symbiotic relationship where two open source projects and communities are able to work together to improve each other and I am so excited to be a part of each.
April 19, 2018
April 16, 2018
April 15, 2018
Announcing Saelos Beta
Wow. I’m a little in shock that this day has finally arrived. It feels like months and months and months in the making. (Probably because it has been). And I couldn’t be happier with the result. What I want to share with you today is the result of untold nights and weekends. Long days and quite literally thousands of hours of time. I’ve talked about it before, but time is our most valuable asset. We can’t buy, beg, borrow, or steal more of it. As a result there’s nothing that costs more than time. With that thought in mind, what I am about to share with you is a gift. A gift of my time. It will cost you nothing. I give it to you completely for free. But wait, before you think that’s the end of the story. Let me stop you and share with you something I believe is even greater than a free CRM. This gift I’m giving you, the one comprised of my countless hours of time I will never get back – this gift is more than just free. It’s open.
This is now completely and totally available for you, for me, for everyone to continue to improve upon. This creation now lives freely available and completely open in front of you and the rest of the world. No one has seen anything quite like it before. Every line of code is available for you to review and improve upon.
As with any software this project starts its life as a beta. Now I believe you will be hard-pressed to find other beta software with the feature richness and depth that you’ll find in this one, but I am sure you will find bugs. Please remember, this is beta software.
I would be remiss if I didn’t specifically mention one very important individual who has joined me for this ridiculously challenging journey. From the beginning there has been one person that deserves special recognition for his willingness to tackle any problem, to identify the best solutions, and to build anything he was asked to build. I’d like to thank Don Gilbert for his tremendous contribution and his dedication to this project, without him I would not be announcing what I’m announcing today. Thank you Don.
I am sure by now everyone knows what I am about to share with you. I’m sure you’ve read the previous posts, heard me speak, or gotten some other insider scoop into what I want to share with you today, but that doesn’t mean it’s any less exciting or any less monumental of a moment. Today, I am pleased to announce that Saelos, Open Source CRM, is officially available for download.
The Saelos repository links will be shared at the end and the website will also be immediately available as of today to give you the download.
But let me first tell you a little bit about this amazing software which I’m sure you’re dying to know more about.
An Open CRM
Saelos is customer relationship management re-imagined. It almost pains me to call it a CRM. It’s more a beautiful blend of sales enablement, customer relations, and incredible intelligent relationship management. I knew when I started thinking about this system I wanted to solve a problem. A problem I faced. It seemed every time I wanted to find out something about someone I was stuck logging in, clicking through what felt like a million links, staring at a hideously ugly screen, and ultimately being presented with some table layout of information that was disjointed, outdated, and difficult to search through.
What I wanted was a way to see the people that mattered to me, to easily see (and update) their information, to be told what things they were related to, and to be able to instantly connect with them. All I wanted was intuitive, beautiful, fast, access to the people I cared about. I believed I should be able to have this. I believed the relationships in my life mattered and I shouldn’t have to waste my time trying to maintain them.
This meant designing modern software capable of solving this problem. This meant rethinking everything I knew about existing systems, taking the pieces, and creating something new. The trick always lies in attempting to create something new and yet familiar. I believed whatever I built had to feel comfortable. I wanted you to sit down, log in and feel at home. You just know where things are, you know how they should work…and they do, beautifully.
So, what can you do with Saelos? I’m glad you asked, let me show you a few features I think you’re really going to like.
The first and most obvious area in Saelos are the contacts, you’ll notice I’m using terms you’re probably familiar with, and immediately you know what I’m talking about. The contacts gives you a blazingly fast list of your contacts, and wow, is it ever beautiful. You’ll probably want to know how it’s so fast and what the software is behind this platform. I’ll tell you more about that in a bit, but first, let’s just look around the contacts to see what all we can do.
In the middle of the screen you’ll find all the details about the person you’re looking at. You see their address, and other important information right at the top, and then convenient groupings of other fields below. These fields are customizable and easy to create in the config section.
Sometimes my memory fails me for a second and I need a reminder about what’s happened with someone in the past. It’s embarrassing to ask and it’s time-consuming to hunt through old messages to try and figure it out. In Saelos you simply click the arrow at the top of the right panel and you’ll instantly see everything that’s happened with this person. Every field update, every interaction, every status change, everything.
Activity & Conversations
I mentioned interactions a second ago, and you’ll probably notice I slipped right over the top row of icons. Let’s look at those real quick. Sometimes you want to give someone a quick call, it’s as easy as clicking a button – one button. And you’re connected via your phone. But that’s not all, with a simple config setting every call can be recorded and attached. And it‘s not just phone calls, you can send text messages (and receive them) as well as send email. And you can do all of these tasks without ever leaving the page.
If we look underneath the person you’ll find a record of each conversation (phone call, email, text) instantly and easy to review, Saelos CRM makes your conversation tracking effortless.
I love how everything is logically laid out and easy to find. Everything working together at the speed of my thought. This is revolutionary.
Beyond just contacts, it’s important to keep track of the accounts and companies where your relationships work (and worked in the past). Keeping track of all this information as well as any opportunities, tasks, and notes associated with each account can be overwhelming at times, but Saelos helps you manage them all by placing them directly on the page along with the company information. You’ll never have to go far to see these details. Which brings me to the next area to explore: the details.
The panel on the right is full of valuable information you can use to easily jump from one thing to another. Your mind works incredibly fast, you process relationships and connections almost instantly, and now you can get information delivered to you at that same speed. Companies, opportunities, tasks, and notes are all conveniently located right next to your person. You can see and manage the status of the relationship instantly as well in Saelos CRM. (Need to add more statuses, again, an easy config option)
But managing my people involves more than just their personal details. I also want to know what opportunities (another familiar term) I had with various contacts. I wanted to know what stage those opportunities are in and what next step is best to take. Just like with the contacts we can easily scroll through our opportunities to find the one we’re looking for (or use the advanced search filtering to quickly narrow the list). More custom fields can be added here and I can easily see all the related information here as well. Creating and managing these opportunities has never been easier.
The last thing I want to draw special attention to involves beautiful, incredibly functional tags. Tagging in Saelos lets you quickly link items that might not be linked anywhere else. You can pick a name, pick a color, and even add an emoji. Then, you can easily see people, companies, opportunities, and tasks associated with that tag. It’s ridiculously simple and yet surprisingly powerful.
There really is so much greatness captured in this system it’s hard to highlight only a few of them, but it wouldn’t be any fun if I didn’t let you discover some of them for yourself. That’s the beauty of a system like Saelos where everything is so intuitive, it really is like a fun opportunity to discover something new and exciting.
Here’s a few hints for things you should definitely check out:
I hope by now that you’re sufficiently prepared for what you are about to find. But before I let you go and use Saelos for yourself I want to share some of the incredible tech that supports this system.
Finally I mentioned earlier that this is beta software and that you will undoubtedly find bugs. I also mentioned that this was started as a gift made available to you, free and open source. But this is not the end, it doesn’t stop with an a gift given. No, this is the beginning. Now you have an opportunity. An opportunity to make the gift better, to continue the act of generosity and improve this software for yourself, but more importantly for others. Be patient as you implement but hold Saelos to a high standard at the same time. Gather issues and report them. Take the next step and fix them. Become a part of this community that is now forming and take an active role in forming the foundation for this open source project.
Now, with all that information shared, and without any future awaiting. I am proud to give you immediate access to Saelos Beta. Here are your download links:
Full Package Download: https://github.com/saelos/saelos/releases/tag/1.0-beta
Code Repository: https://github.com/saelos/saelos
Please be sure to star this repo and share it with others! If you have questions, drop me an email. I’ll be sharing even more documentation in the coming days. For now, the repository has step-by-step setup if you’re building your own. The download package you simply unzip into your web folder.
What are you waiting for? Start exploring Saelos CRM! Tell others, tweet about it, facebook post about it, share on LinkedIn; just please help me spread the word! Let’s change the way we think about relationships in business!
Interested in the slide deck? Download the PDF here.
April 13, 2018
April 13, 2018
Open But Not Inclusive
This week I attended DrupalCon in Nashville, TN. I always enjoy open source conferences and this event was no different. There were hundreds of sessions available over the 3 day event and it’s always tricky to navigate the feeling of “information overload” when attending a multi-day conference like this.
One of the tricks I’ve learned over the years of attending these events is to take one session slot each day and not attend a session. Instead I find a quiet location somewhere and jot down my thoughts on what I’ve been hearing and learning. This helps me to keep from getting conference brain where I’m sitting in a session but not hearing anything. This also gives me a chance to catch up on other messages so when I /am/ in a session I can give it my undivided attention.
I’d like to share with you is the result of one of those reflection sessions. This nugget of greatness came from the opening keynote on Day 2. Steve Francia, @spf13, was sharing his story and it was full of helpful information, anecdotal advice, and stories from his personal journey. It truly was an amazing keynote. As he spoke there was a few slides in particular he shared which caught my eye and attention. They specifically addressed an issue I am constantly aware of with the Mautic community.
You’ll have to forgive my sketching, and trust me when I say his slides were much prettier. But I imagine you’ll get a fairly good idea of the concept. Not to mention, if you are that interested; you should have attended!
Here’s the basic concept: Open NOT Inclusive.
The idea was one that Steve mentioned he discovered while working with Google and the Go community. What he saw was that the core team (Google) was doing all the contributing to the code and the community was observing and consuming without being actively included or taking active leadership roles. As a result the true power of the community was left untapped and the internal team was a limiting factor.
I was struck with the similarities to the Mautic community and as you can tell from my sketch I self-identified with our team in a similar fashion. At this point I found myself agreeing with Steve’s problem statement and as such was eager to see what he shared next. Below is again my representation of the slide that followed.
Steve offered a simple solution. Well, it appears simple, but the implications are of course much greater. The suggestion as outlined above involves Distributed Control – when the community is able to make leadership decisions and assume roles of responsibility the dynamics change. This seemingly obvious change to /inclusive/ gives a sense of ownership to the community. It makes the community truly empowered and in control of it’s own destiny. What a fantastic and exciting future.
While I believe that the Mautic community is working hard to assume positions of leadership and my intent is to see this growth occur as soon as possible this served as a valuable reminder to me what we are all striving for. Steve pointed out that the Drupal community was an excellent example of this inclusive open community functioning properly and looking around at the thousand or so in attendance I would have to agree with him. I look forward to the Mautic events in the future when we can say the same thing and demonstrate it with the many community leaders taking an active role in the future of our project.
That’s all for this post, but I will continue to share my thoughts from my reflection sessions in the near future. In the meantime, let’s not forget this valuable lesson and keep striving to make Mautic the most amazing community it can be.
April 7, 2018
April 7, 2018
April 5, 2018
March 25, 2018
Sunday Saelos Update
Since it’s my weekend project and since today is Sunday I feel it’s an appropriate time to publish a quick update on Saelos. I’ve done the unthinkable. In the world of software development and releases some might say I’ve done the unimaginable. I announced a release date. That’s right, in case you missed my previous blog post (catch up here), I have announced a date when I’d be releasing my passion project Saelos.
I’m not repeating that date here, if you’re curious about when it is…go check out the previous post. Let’s just say under my current level of stress and the number of hours left in my weekend it’s going to be a bit of a hard deadline to hit. But I’m committed. And just in case announcing something like an actual date of release isn’t stressful enough – the response I’ve received so far has been insane. Far more than I anticipated.
I’m a stats kind of guy, and as a programmer the numbers and equations are kind of a thing for me. I love to see and find patterns and since my little side project is just getting started I figured I’d set the stage right by sharing various stats as I go and as I get closer to a release. Because there’s something else that defines me; besides just being into the numbers and the patterns. I am open. I believe in open source to my core and that same openness pervades other areas of my life too. I hope you find the inside view refreshing and informative. Let’s get rid of black boxes.
Okay, so here’s some information coming at you: Since I published the blog article on March 14 (roughly 11 days ago) there have been 472 individuals that have submitted the form requesting more information. We can also take a quick look at geographic information and see 35 different countries are represented by those known contacts with the majority of those originating in the United States. The website has tracked more than 5,000 unique visitors. And that’s just a couple of the numbers.
In case you’re curious: I collect these types of details (and much more) using Mautic, an incredible open source marketing automation platform.
In regards to the blog article, it has exploded into the top 10 most visited pages of all time on my website (interested in the first?) . And this is after only 11 days of being published. I find this exciting and intimidating at the same time (no, not being trying to be cliché). It’s awesome because it means there’s a real interest and a real concern. It’s terrifying because I put a date on it! What was I thinking? And why on earth am I wasting my weekend hours writing a blog post instead of working on it?
I guess because I want you to be as excited as I am about what’s coming and I want you to know what’s going on behind-the-scenes. The numbers are fascinating and exciting. The interest is very real and I want you to be a part of the entire journey, start to finish. All in all, things are progressing nicely and I can’t wait to share more with you. If you do want to know more, check out the splash page, throw in your email address, and get notified when something new is shared. (You can also sign up on my blog here on the left to be notified).
Now, I’ve got to get back into things. I’ll do my best to share a bit more with you in the days ahead. But don’t sit around waiting for me! Sign up to let me know you want me to reach out and then go out and get something done (or enjoy your relaxing Sunday)! We’ll be talking again soon.
March 21, 2018
March 20, 2018
March 20, 2018
Market Smarter Not Harder
I think a lot about what’s coming next in the world. I focus a good bit of that time on the area where I spend most of my waking time – Mautic and marketing automation. When I set out to create Mautic I wanted to create a marketing automation platform that had never been seen before. I wanted to give the world the tools and the power of a platform that not only excelled in feature and functionality compared to existing proprietary products but also did so in a revolutionary way.
I am excited to see and hear the growing and continual positive response that Mautic receives. The reviews keep piling up and the compliments speak to the fact that we are accomplishing our goal (notice the verb tense? Active. Because we’re not done yet). If you haven’t had a chance to explore the Mautic marketing automation campaign canvas then you’re really missing out.
What we’ve created is something that was more robust, more functional, and quite honestly more beautiful than anything marketers had ever seen before. And that’s not just marketing speak. The blank white canvas you start with is a breath of fresh air. From here you can create a simple or complex marketing campaign with the ease of dragging and dropping items onto the page. It’s just like sketching on a whiteboard (and we all know how much fun that can be).
But this is only the very first step in our marketing automation journey. There is so much more to be done. We have to keep digging deeper and we have to continue to explore what should be done with marketing automation and doing smarter marketing.
What follows are my ideas. They are incomplete, they are my sketches and my thoughts. I want to engage you in my future-looking focus. I want to encourage you to expand your mind and think more about what the future might look like.
Let’s talk about old marketing first. I know I’m calling this old marketing but unfortunately the oldest of these sketches is what some current marketing automation platforms still sell today. Mautic v1 was the revolutionary marketing automation platform our community created over 2 years ago. Today it is still one of the most talked about aspects of our platform.
So, with all that hype why am I considering V1 and V2 to be outdated? Let me explain. Marketing automation should be automated. We all agree with that concept. The above marketing campaign solved some of the problems with marketing automation but not all of them. Mautic did some amazing things with multi-channel messaging. We also created some really advanced campaign canvasing that allowed marketers to send those segments down a variety of paths with different channels for communication.
But there’s a fundamental piece that has been overlooked. We also all agree that marketing automation should be personalized. With that in mind why do we continue to do marketing in groups? (By groups I mean of course segments)
This is where I believe the next step in marketing need to be realized. Let me elaborate.
First, I want to be sure that I don’t think I’m suggesting something new that’s never been thought of before. There are many smart people that have done bigger and better things before. I want to make it a reality. I believe Mautic and the open source community is capable of making those ideas a reality. The above sketch is what I believe the future of marketing automation looks like and in the next 6-9 months I am confident the Mautic community can achieve this.
Okay, now what does it look like? Let’s get real. Instead of the marketer having to create these elaborate paths that segments or groups of contacts have to navigate together there should be a more personalized route Here’s what that looks like broken down.
Marketers should instead create marketing messages which are a number of variants of the same message created for several channels (e.g. email, sms, web push, mobile notification). These variants are collectively called a marketing message. The marketer outlines an objective and success for each message. Finally, the marketer then creates a number of these marketing messages. After creating these messages the marketer defines what success for the campaign should look like. Success does not necessarily mean 100% completion of every message. Instead a marketer may decide upon a number of outcomes based on various percentages of completion.
This may sound mildly familiar and somewhat similar to existing marketing but here’s where it gets different, very different. Marketers shouldn’t have to market to entire groups as one; better that each contact received a personalized marketing campaign based on their particular specific interests. Mautic V3 does this.
Because Mautic v3 creates customized journeys for each contact based on their preferred contact channel. In addition to sending the message on the preferred channel, Mautic also accomplishes one other important marketing objective: right time.
I know, it sounds a bit like a marketers dream – right time, right message. But that’s exactly what Mautic offers and we’re able to do this because we’ve been planning for it all along. We launched version 1 with multi-channel messages. We released version 2 with the ability to create marketing messages as well as a preference center for contacts to select their preferred channel. From day one we’ve been carefully creating a marketing automation solution that is world-class and second-to-none. Mautic version 3 continues that journey and brings about the next step in amazing marketing automation.
March 19, 2018
March 18, 2018
March 14, 2018
Introducing Saelos: A Personal Project
Some of you may have noticed that it’s been a little while since I posted a longer piece on my blog. That’s not because I haven’t wanted to but because of some other things I’ve been pouring every spare second into. Literally every spare second. We won’t get into a discussion on the topic of sleep habits (maybe I’ll come back to that one – it’s interesting) but suffice it to say, the time I’ve spent has been all-consuming.
But that’s what happens when I am passionate about an idea and want to see it developed. I lose myself in it. I can’t help but think that’s normal though right? Don’t you do the same thing when it’s something you’re incredibly excited about? Regardless, I’ve come up for air now and decided it’s worth taking a few minutes and letting you in on my personal project. This is just something I personally believe the world needs and a shift in a current status that I think can improve lives and business for everyone.
If you’ve never read the book What Do You Do With An Idea? you should stop right now and pick up a copy). It’s a children’s book so don’t fret – you can finish this one in a few minutes.
So, what do I start with? The solution? The problem? Oh, wait, I know. I should start with why. Let’s do this:
I’ve watched people keep lists my whole life. I’m a list maker. I love making lists of things and keeping track of how I’m doing as a result. So when computers came around people wanted to create lists on it. Natural progression. As is always the case with software one list became multiple lists. Then people dreamed up the fabulous idea of using those lists for showing more information. What a beautiful thing. Now my list of a sentence could be an entire paragraph or more. What if I wanted to define fields and then allow other people to edit and update my lists. At a very high level this concept of a list item gradually turned into the idea of a single record with lots of data in it.
Okay, everyone with me so far? I’m going to jump ahead a few steps so keep up we have to start moving faster (I have a thing for speed). Companies began to create software to help with managing these records. They all started with this idea of building a list and adding more and more fields to each record. Display the record differently, use different names for the list items (or objects) then package it as a different software product. Rinse and repeat. This was the state of the world and then the internet came along and these companies all moved their products to the web. Same product, same thinking, but a different medium. (C’mon people, this is “the internet”)
But the thinking that built these platforms was inherently the same (for the most part). One company even went so far as to attempt to use a “No Software” logo, which attempted to suggest a new paradigm shift in business work, but this was the same thinking, different platform. The software was never the problem. The thinking about how it was built and the implementation of how it functions is.
This problem of record management was something that I both heard about and experienced myself. A world of “apps” all performing the same CRUD tasks (Create, read, update and delete – Wikipedia). Then you could even build your own app on top of an app to add more of the same with different fields you wanted to track or different functionality you wanted to have. But the underlying system was faulty. And though the underlying code was constantly being added to and tweaked, it was the same framework. And I believe people need a change. I believe software today is fundamentally different from software of yesterday. Below are my fundamental principles about software.
- Be modular not monolithic.
- Be extensible.
- Solve specific problems.
- Be active.
- Be open.
Those five fundamental beliefs shape the work I do and the projects I work on. I absolutely believe this. Let’s look at each very quickly.
Software should be modular and not monolithic.
My statement here is more than just the concept or idea of bolting more pieces onto a base. That’s the app tacked on to an app tacked on to an app idea which businesses today attempt to do. By modular I mean the core functionality should be able to be removed, replaced, rebuilt and improved upon.
An example of this lives in the Mautic platform. Mautic functions as an omni-channel marketing platform. Fancy words, simply put, Mautic lets you market across email, sms, social, web, mobile and more. The channels are fundamental to the software, but they are completely modular. Want to use SendGrid instead of SparkPost to send your email, no problem? Have a different ESP? Drop in your credentials and go. What about SMS, Team Twilio or Team Plivo, the choice is yours. Mautic is fundamentally modular in it’s approach.
Software should be extensible
I believe the idea of extensibility is broken in many cases. This idea is commonly misconstrued in the world through the proliferation of “App stores” within product companies. (/I’m not referring to Apple or Android which provide applications to be run on an operating system./) Software being extensible means something quite similar to the first point. Modular software can be easily extended to include additional functionality while not losing its core purpose. But extended to a different ecosystem (or app) through the open exchange of data.
Software should solve specific problems
Too many software companies today try to be all things to all people. The world is not your target market. I believe in the idea that software should be accommodating and flexible but this doesn’t mean it’s a one-size-fits-all approach. Flexible means the software should fit your business rather than your business conforming to the software; but the problems to be solved are unchanged. This means the processes might vary, but the solutions remain the same.
Software should be active
I know this point sounds funny but the majority of today’s software is passive. It responds to requests, it dumbly regurgitates what it has been given and spits out a mangled version of an answer … when asked a question. I call this passive software. In contrast, I believe software should be active. It should proactively assist me in performing a task or reaching a goal. (These many software assistants are absolutely passive but that’s another post.) Software should be helpful and active in enabling the user to move faster and do more, intelligently.
Software should be open
I left this one to last because it’s the foundation. It’s the belief on which everything thing else is built. I believe software should be open. There are countless studies, reports, and white papers on the reason why so I won’t sidetrack this discussion. I believe in open. An open software empowers people and enables the other points above.
All of that brings me to a problem I face. I needed something to help me manage relationships. But everything that existed in the world was old, bloated, slow, inflexible, and closed. Yep, pretty much the exact opposite of everything I listed above. It’s frustrating. But solvable. I believed I could create a platform that managed relationships but was built on the principles I believed in. So I started working.
I wanted to create something blazingly fast (regardless of the number of people) being managed. Something modular that could be easily extended, something that solved some very specific problems, something active in its interactions, and most importantly something open.
I’d like to introduce Saelos. An open platform built on the software principles I shared. The purpose: customer relationship management. That’s a tricky one to say because instantly I’m sure you conjured up one (or more) companies that offer a solution under this label. But Saelos is different. Very different. Because Saelos is something I’m calling active software. By this I mean that not only does it manage customer records differently but it also actively helps you maintain connections, build relationships, and accomplish your goals by actively assisting you. Task completion, recommended actions, process improvements, and intelligently created reminders are just a few ways that Saelos will do things for you.
Let me be clear: Saelos does far more than just incorporate another workflow builder and follow simple step-by-step procedural tasks created by a user. Saelos builds them for you, and then executes them. And informs you along the way, all the time enabling and empowering you to do more of what you should be doing with the right person at the time you should be doing it.
Possibly the best part of this entire project is that Saelos is built on the right foundation: open. This means Saelos can be downloaded, self-hosted, installed, configured, and improved upon by everyone.
I have so much more to share and I can’t wait to show you what’s been created. I’ll be giving early access to the project I hope by the end of the month. (Friday, March 30 2018). I know it’s forbidden to set a date in software development…but I’m feeling pretty good about this.
Are you interested? Do you believe in the same fundamental principles as me? Would you like to experience something different in how you manage and interact with people? Sign up for early access here, and let me know. Oh, and subscribe to notifications on my blog to be on the insider’s list. I’ll be posting more information and (hopefully) screenshots in the days and weeks leading up to the release. It’s coming fast, I hope you’re as ready as I am.
March 14, 2018
March 10, 2018
March 7, 2018
March 6, 2018
March 5, 2018
Blockchain Bonanza or Bitcoin Bubble
I didn’t post anything in 2017 about the concept of blockchain and I’ve been diligent in not posting anything so far in 2018. Now I’m finally going to break my self-imposed silence. I’m choosing to now because it seems that the initial craze has worn off a bit and thing are finally starting to normalize. (At least that’s the impression I’ve gotten in recent days/weeks). Sure there’s still plenty of news and publicity surrounding the technology and there’s the occasional doomsday post but the rabid chatter that the everyday individual engaged in seems to have faded.
As a result of this decline I think it’s finally time to share some of my thoughts and opinions (not to stir things up again but because I believe my post now won’t be seen as my feeble attempt to jump on any bandwagon). The concept of blockchain technology is profoundly revolutionary to our world but you have to look far beyond the early beginnings of a cryptocurrency and the current proof of work mining efforts.
If you are not yet caught up on the topic, there are literally thousands of articles to help you. This one is a great read, but my personal favorite is this article: WTF is The Blockchain? – Hacker Noon. After you’ve read this (and hopefully others) then you should have a much better understanding about how the blockchain works and functions and maybe a hint about why it’s so important for the future. (And no, that’s not just hype talking).
Now, as is usually the case, anytime something new is announced you get the first rush of early adopters. In some situations those early adopters are quiet, excited enthusiasts doing fun things, exploring the limits of the newest frontier on their own and happily doing so. In other situations those early adopters see the potential in something and begin shouting their praise every way they can. When those situations happen the rest of the general population can’t help but notice and begin to pay attention. Again, nothing incredibly new or different here. But every once in a while in rare instances something else comes into play. Money.
That’s right, blockchain might have happily been created and begun to spread in the usual manner, but instead bitcoin was the primary vehicle by which the technology was propelled into the spotlight, and the money changed everything. Not instantly, but when it took off, it really took off.
But this post isn’t about the history of the blockchain or even the debate over bitcoin bubbles. Instead, as I began with, I am excited to talk about the future of blockchain and explore what the blockchain might be able to provide for different verticals besides cryptocurrencies. And no, I don’t consider CryptoKitties | Collect and breed digital cats! to be the full extent of the possibilities. Although I do admit to owning a few myself.
I truly believe in the fundamental concepts behind the blockchain. Maybe that’s partly because it seems to be the next generation of open source. We’ve seen the world gradually come to accept open source software as the new normal and the studies are in: open source software is eating the world. Almost every major company and organization participates and uses open source software in some manner in their business. And what I see in the blockchain suggests that this will be the future next generation of open source. Decentralization. No single source of controlled power. Democracy ruled and available for everyone to participate in. Sound familiar? It does to me.
Open source and blockchain share a lot of the same principles (along with some of the same, familiar opposition). And I am excited to encourage and push the boundaries of the blockchain much in the same way as open source. We can do this by examining what ways blockchain can be used “outside the box”. If we look at blockchain applications (and there are many already) we can begin to see how versatile the platform is and how it can be used. But just like the saying goes:
”…it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.” – Abraham Maslow
This is referred to as the Law of the instrument and is a common cognitive bias and is especially important to consider when exploring new technologies (like blockchain). Just because it’s new doesn’t mean it’s right for everything. So while it is important to think outside the box, we must still at the same time also consider the most effective tool for a job. It’s more important to identify the job and then pick the right tool then to take a tool and try to find a job it will do.
This frames my thinking about blockchain and the future of software as I see it. I believe this is a powerful tool and will be the basis for many new innovations in the future. I also believe that with this tool we will be able to improve security, openness, transparency and trust in software systems. And finally, I believe that blockchain is a fantastic tool, but it should be treated as a tool and selected only when it is right for a particular “job”. We should push the boundaries. We should explore new technologies. We should do this thoughtfully and intentionally. Join me and let’s begin creating the software for tomorrow’s internet.
Interested in hearing more about what I’m thinking and working on? Let me know and I’ll write a follow up post with some greater detail; otherwise I’ll share it with you when it’s ready.
March 5, 2018
March 5, 2018
February 25, 2018
Release with Purpose
One of the topics that frequently gets discussed in engineering circles (or maybe I should say product circles) is the concept of when to release. I say product circles because engineers I am convinced would be happy to keep a project in continuous improvement forever. It’s in our blood. We have this innate desire to continue to make something better and every time we look at a project we’ve found a half dozen ways we can continue to improve it before we call it a product and release.
This is a blog for everyone though, not just engineers so let me take the back a level and make it more of a general concept discussion.
The perpetual debate that happens in any company who releases software or ships a product is about when to ship and when to perfect. And there are a million different pieces of advice and ways to look at the situation. Apparently, based on the majority of those, most people tend to hold on to things too long and never ship. As a result the most common advice is to Release early, release often and iterate. Great companies have pushed this mantra in the past and possibly one of the most well-known of the modern era, says this:
Hackers try to build the best services over the long term by quickly releasing and learning from smaller iterations rather than trying to get everything right all at once. To support this, we have built a testing framework that at any given time can try out thousands of versions of Facebook. We have the words “Done is better than perfect” painted on our walls to remind ourselves to always keep shipping.
“Done is better than perfect” and “Move Fast and Break Things” are two of the common phrases associated with the Facebook movement. Both of these focus on this same sentiment. Speed and early releasing is more important than waiting for perfection.
I understand the mentality. I agree with the sentiment. And I encourage others at Mautic and in the community to think this way as well. There’s truth in saying that “we must quiet our fearful ‘lizard brains’ to avoid sabotaging projects just before we finally finish them”. But, it’s also important to not release prematurely. While this caution doesn’t need to be issued as often (as discussed above) I was discussing a tool improvement yesterday with one of our engineers, shout out to Don Gilbert for being a weekend warrior, and the conversation subtly shifted back into this debate. He looked at me and said, “We don’t want to delay a release for perfection.” My immediate response was, “We do want to delay a release for purpose.”
What I meant by that statement was simple: When releasing a product into the market, or really releasing anything (marketing materials, sales decks internally, literally anything) we should release intentionally. And if there’s something fundamental that needs to be improved or changed before a release, then hold the release for a purpose. A specific purpose. In this way you’ll release early and often, but you won’t release a problem. If you have a real and definite purpose for delaying a release you’ll fix that reason and still release. It will still be fast and it will still be frequent. But it will be polished.
February 25, 2018
February 20, 2018
Cyborgs and AI
I am almost embarrassed to write this due to the lateness with which I am apparently reading this particular blog post, but for those that have beat me to it I beg for your patience while I get a bit excited in sharing my personal discoveries. Okay, with that being said let me dig in and get a bit more specific.
I recently stumbled across this article, Neuralink and the Brain’s Magical Future – Wait But Why and it’s done wonderful things for putting real words to some of the thoughts I have been entertaining regarding the future of AI and humanity. If you have a free 30 minutes (maybe an hour or two) then I can think of very few things more worth the investment of your time. Take a deep dive into this line of thinking and expand your horizons.
I can tell you that a few of the concepts here touch on topics that I have personally been very excited about and have begun discussing with those that work closest to me. I agree with the observations concerning the direction of our current technology and I also agree with the concept of how we successfully navigate the perceived dangers of AI. Bottom line: An integrated AI is where I place my hopes and intents for the future. And although there are a couple of areas in the post where I take a different line of thinking from those shared in this article there are many others where I agree. A fully integrated tertiary layer that improves upon our “output” will revolutionize our future. External vs Internal supplemental AI seems a moot point that society will need to reconcile in time.
If you’d like to read what I’m reading and are curious what my thoughts are about where we go from here, then this article gives some great insights to get you started. Read it and lets talk. Read it and challenge your own thinking. Read it and challenge mine. As I shared on my short form post, Opinions this ability to form, express and differ in those opinions is what will improve us all.
February 20, 2018
February 18, 2018
February 16, 2018
February 15, 2018
Exploring Serverless PHP
I love reading about cutting edge technology and exploring what will be coming next in tech. Most recently I have been reading everything I can about serverless architecture given the growing number of articles and discussions surrounding this trend.
Most recently I read this article, Rise of Functions as a Service: How PHP Set the “Serverless” Stage 20 Years Ago which very clearly discusses the changes in our technology even if it is several months old. I really liked the comparisons to the early days of PHP and how it relates to where we go from here.
I am eager to see how things like serverless architecture can be implemented in modern software applications like Mautic, or others, but continue to struggle with the fundamental disconnect between these FaaS platforms and a PHP-based software application. I am beginning some exploration in this regard through the use of some different connectors (like the one shared in the article above).
Anyone interested in learning with me (or showing me what they have already done) I have begun my experimenting with this framework: Serverless Framework – Build applications on AWS Lambda, Google CloudFunctions, Azure Functions, AWS Flourish and more and plan to update my blog with my progress as I explore this in greater detail. So far I’ve discovered several libraries that offer integrations and/or frameworks for PHP and have settled on using GitHub – araines/serverless-php: PHP for AWS Lambda via Serverless Framework this resource for starters (don’t hold me to it as I may change this later). I liked this one because it uses Symfony components which is what Mautic uses in core already.
I don’t know if this will be something that we use with Mautic, but I am proud that we currently use the most well-recognized (and still considered cutting-edge) software with Kubernetes. There are always challenges when building out large-scale applications particularly when you want to balance contributing to an open source distributable platform and also create a world-class SaaS platform based on that same code. Kubernetes and Docker containers have given us the ability to do this and I’ve been incredibly pleased with the results so far. (If anyone is interested in hearing more about that I think it might make for an interesting topic for a future post).
For now, I’ll continue to explore how Mautic (and other PHP applications) might be able to take advantage of Functions as a Service frameworks to scale even faster.
February 10, 2018
Phone Screen Experiment
Recently the hype has been growing surrounding the removal of various social media apps from cell phones. Whether the action is due to social pressure, personal resolution or otherwise the outcome is the same – reduced social media usage. I’ve read story after story of people doing this either as an experiment or as an attempt to overhaul their time spent on social media.
In fact, most recently I was excited to hear my good friend, Dries Buytaert also started a blog series outlining his process in replacing his social media posts with more relevant and meaningful posts on his own blog. Personally I think this is the best approach I’ve heard of so far.. Studies have clearly shown that removal of one social media app merely causes a corresponding rise in use of a different one. Dries’ approach carries many benefits not only in the decrease of social time spent but possibly the greater value lies in the increase of quality content that he is now placing on his blog. I’m also a huge fan of the furtherance of an open web mentality that comes as a result of his decision.
I removed the various social media app from my own phone late last year and have found it to be an excellent decision. I’m spending more time on what I consider meaningful activity. But as I’ve progressed this year I’ve continued to read blog posts (like this one) that would suggest the replacement principle is still at work even in my phone usage and even in the absence of social media. And so I am going to continue on my own journey of exploration and hopefully self improvement. Let me explain.
Many individuals like to share the home screen of their phone. It tells everyone what apps they deem most important and what apps they want to be able to access quickly. Here’s my current home screen.
That’s not a mistake. Not only is this my home screen (because I know some of you will think I’m cheating and using screens to the left or to the right) this is my only screen.
My current phone of choice is a Google Pixel 2 XL . I’ve been using the Pixel line for 2 years and love it This means I’ve been using the Android OS for a while and it allows this level of customization. Let me explain my thinking and the reason behind this change.
I should begin with the problem I wish to solve. Too many times I have found myself grabbing my cell phone and tapping an icon simply to occupy myself. Whether that’s out of boredom, awkward shyness, or habit. None of these are acceptable reasons and yet countless times a day these feelings would trigger my action to grab my phone, unlock it, and tap an app. I believe this is a complete waste of time, and more importantly a waste of brain power.
Secondly I’ll share my idea around a solution. I found that 9 times out of 10 my mindless phone usage was begun by opening an app on my home screen. Now, I’m sure you can already guess why I made the adjustments to my home screen that I did and although drastic I’d like you to read about my observations before coming to your own conclusions that I’m crazy or pointlessly radical.
By taking this drastic action I now had to click the home icon (the middle button in the screenshot above) and then scroll down to the app I wanted to open.
Side note: In addition to changing my home screen I also downloaded and applied an icon pack to all of my icons. This keeps the apps from looking familiar and forces my brain to actually look at each app’s name to find what I’m looking for. I may write a subsequent post on this due to some additional interesting finds.
Now I know you’re thinking that I’m wasting valuable time by forcing myself to jump through the hoop of opening up the app screen and scrolling for the app I wanted to use but the truth is actually quite different.
I discovered that the majority of my legitimate phone usage came from responses to notifications. Keep in mind that I’ve removed social media apps from my phone so the notifications I see are now mostly surrounding email, Slack, text, or other personal and relevant communications. So first observation: I was not significantly hindered in my interactions with others as a result of this home screen decision. In fact, my engagement levels were the exact same on tasks that involved actual phone tasks (as opposed to the mindless phone usage).
Secondly and perhaps even more alarmingly I discovered just how frequently I would grab my phone and unlock it without having a purpose to do so. I’m sure everyone knows this is obvious but now that my apps were a two step process further away from my finger it broke the mindless app tap that normally existed after opening my phone up. Instead now I found myself staring at my blank home screen unsure what I was actually doing. This was amplified by the times that I actually tapped the home screen button and found myself staring at a list of apps with no idea why I was there. Wow. For me this was a huge wake-up call. I had no idea the overwhelming number of times I was mindlessly opening my phone.
There are all types of excuses for not doing something drastic like this but I’d suggest ignoring your dopamine-addicted tendencies and consider radical action. 😉 I can tell you from personal experience that so far this experiment has been an incredibly eye-opening opportunity and one I plan to continue. I’ll share further observations in future posts as I continue this journey into proper phone usage and how to take back control of my time and my mind. And of course I would love to hear your thoughts and opinions in the comments below regarding your own phone decisions and radical action.
January 27, 2018
The Importance of Process
Moving fast often has many side effects; whether you’re driving fast in a car, skiing down a mountain at high speeds, or falling from the sky with a parachute, all this speed has side effects. Our goal is to minimize the negative side effects while maximizing the positive ones. (If you don’t know what I mean by a positive side effect of moving fast then stop right there. Go figure this out first. The adrenaline rush is second to none.)
But instead of talking about the highs that come from moving fast I want to spend a couple minutes looking at the lows. I want to explore those negative side effects that come up whenever we’re moving fast. And rather than exploring the entire range of ways we can move fast I want to focus on just one area that is becoming more and more common in today’s world and one with which I have personal experience. I want to share a sure fire way to minimize negative side effects caused by moving fast when building a product.
This is important because of the myths and cliche statements we hear commonly shared in the mindset of today’s startups. These phrases are tossed around as common vernacular and lingo that every startup should claim as their ‘mantra’ for existence. But this mindset is dangerous and potentially deadly for longterm success. Here’s a common example that many of you have probably already heard:
“Move fast and break things.” – Facebook
This thinking is a pervasive cancer that if followed without discretion and proper context leads to those dangerous side effects I mentioned earlier.
To be clear, the problem is not in moving fast, nor is the problem in breaking things. The issue is deeper and more subtle. Moving fast is a requirement for success in the startup scene today. It seems with every advance in technology so the pace of a startups rise to success must also grow exponentially. Speed is equated with success and the giants who paved the way seemingly preach this gospel without regard for side effects. But I’ve gone long enough without providing more context for what I am suggesting. If moving fast is not the problem what is?
The problem does not lie in breaking things either. There’s nothing wrong with breaking things as you move fast. It’s naturally an inevitable side effect and I would suggest it is not a negative side effect. But now we’re getting closer to the true issue.
We must learn from what we break and we must move fast in fixing them when they do break. As we move we have to build in proper processes. These processes help to govern our speed and shape our direction. And this is where the fault becomes evident. If a startup or a business moves fast without the proper process than mistakes will snowball and problems will grow into an insurmountable obstacle. And that is why processes are so important. But let’s get specific for a bit and evaluate what those processes look like practically speaking.
1. Get Past Repetition
The first process that needs to be established in your quest to move faster is to get past repetition. This process means when you fail and break things you want to protected yourself from doing it again. You don’t want to fall into the dangerous trap of repeating your past failures. Failing is acceptable and part of the process. Repeatedly making the same mistake or breaking the same thing is not acceptable. This means you need to diligently set up a process to help you guard against this. Now you may be wondering what this looks like. The first and possibly greatest way is listed as another separate process below (Document Failures).
Here are a couple practical ways you can get past repetition.
- Share information within your team. Whether this is done through regular and frequent all-hands meetings or done informally in chat conversations. It is important that everyone knows how the company is doing where you have succeeded (and failed). Knowledge truly is power.
- Train New Team Members. Much in the same way that the first point educates everyone on the team by giving them current information about the status of the team success, newly joined team members need to be brought up to speed on those conversations. Create a powerful and robust database of the company’s history (and I don’t mean the marketing story about how the company has risen through startup struggles to be a powerful force to be reckoned with.). Make this down and dirty. Make this real.
2. Use Positive Reinforcement
The second process you should setup as you move faster in your startup involves the implementation and use of positive reinforcement. This is incredibly important because failures and mistakes can be discouraging. Team morale may falter and if this is not guarded against this will lead to a downward spiral, increased discouragement, and ultimately failure. Positive reinforcement means looking at your failures not as catastrophic and dismal but merely a part of a greater journey. Positive reinforcement encourages failure for the sake of growth.
Now of course I don’t mean go seek out failure so you can grow. That would be crazy! Instead, when failure occurs (and it will) seek out the lesson to be learned, the means by which that breakage can make you stronger for the next time. Encourage your team members by reminding them of the big picture. The best way to rise up from a fall is to turn your eyes towards where you are going.
3. Ask the Right Questions
The next process to build out involves a standard to be created at every point when a failure occurs. Don’t ignore failure, but don’t blindly encourage your team either. Instead, do a proper post mortem on each failure point. Know why you failed and know what you can learn from it. But I didn’t name this particular process Error Reporting. Instead when you break something you need to be able to diagnosis it properly. This means above all else you must ask the right questions after you break something. This can be tricky because who is to determine the right questions?
Asking the right question meanings that you must first have a strong understanding of the objectives. But thankfully, when the above processes have been created (using positive reinforcement and protecting against repetition) then everyone knows what the goal is. And knowing the goal means you can ask the right questions. As you can see these processes are linked. They work together.
4. Redirect Appropriately
When moving fast and breaking things there’s another important process you need to create. Redirect as needed. That’s right, moving along at breakneck speed doesn’t mean doing so blindly or without direction. Only a fool would not take the experiences and failures and learn from them. Learning from them is more than asking the right questions, it’s more than telling the team, and it’s more than staying positive. Learning from mistakes means acting on the knowledge gathered and using that knowledge to redirect or change course.
I’m sure this is more easily understood than the other processes and its different for every startup. But the takeaway is the same regardless. Learn from your mistakes and change your path as a result.
5. Document Failures
Finally, the last process I’ll describe for you is one that has been hinted at repeatedly through a variety of the other processes. As I suggested earlier many of these processes are interlinked and co-dependent. Of course you can establish a few of them without the others. But implementing them all will give you a significant advantage. And it should be said that you may already be doing some of these processes already just with different names or implementations. Ensuring that your startup in one way or another follows these processes will increase your likelihood of success and growth.
So, the final process is documentation. Writing down what happened, when it happened, and most importantly why it happened. By having this level of detail in your documented mistakes you’ll prevent yourself from creating the same ones again (or at least guard against it). It all ties in together.
Write it down, share it, learn from it, encourage one another, redirect as necessary. Follow these processes and you will not just blindly move fast and break things. But you will instead move fast with a purpose and break things as you make them better.
This simple acronym, GUARD, will help setup the right process and allow you to move fast and break things…the right way. With intentionality and proper direction you can accomplish incredible things and truly accelerate your growth. Without these processes and guidelines you’ll fall victim to the same trap as so many other failing businesses who think moving quickly means constantly failing. Build the right processes and watch your productivity explode. Who knows, maybe something you say will be the next ‘mantra’ that everyone is quoting.
January 3, 2018
The MIRROR 2017
Well recently I wrote about my New Year’s Resolutions and I admit my post was a bit of tongue-in-cheek and felt it only fair to share something with a bit more substance. I figured the best way to do this was to share something meaningful which I spent a significant amount of time writing. This was meant for internal use only but in the interest of openness and transparency I’m going to share with the community.
Every end of year provides an opportunity to reflect back on the previous 12 months and identify the successes and the stumbles that occurred. A good look at oneself is hard but extremely helpful. Knowledge is power and if we have a good understanding of what we truly know we can be more powerful. Honestly there’s few things worse then to be “in the dark” about something and if we don’t know what happened in Mautic or what others are doing then we are completely clueless.
Below is a document I created that will help you understand every aspect of Mautic. If you’re involved in Mautic then this document will give you a great review over what all has been done in the past year. If you’re not yet a part of this incredible community then maybe this deep look at every aspect of Mautic will help you understand why Mautic so special. And even better this may give you some ideas on how you might get involved in the Mautic community.
I will probably comment about various aspects of this doc in future blog posts but for starters I’m merely going to share the doc. Enjoy the reading!
January 2, 2018
New Year’s Resolutions 2018
This time of year the talk of resolutions, of change, and of self-betterment seems to take center stage. Everyone focuses on the things they want to better in themselves for the coming year. But why do we do this? Why do we take this time to lament our shortcomings and set goals for the future?
The last question gives us a good hint at the reason. The “death” of one year and the subsequent “birth” of the next year is a perfect opportunity for us to put to death the bad habits we identify in ourselves and try to set in place those habits we wish to maintain.
Did you know the tradition of making these resolutions dates all the way back to the Babylonians? They held a giant multi-day party and made oaths to the gods to repay any debts they owed to others and return anything they had borrowed. They made these promises full-knowing the massive consequences of failing to keep these vows: death (because displeasing a god surely meant death). I think that might keep you on that treadmill for a day or two more. Or at least keep you from making a promise you don’t have 100% resolve in keeping.
A study performed in modern times demonstrated that less than half of those making New Year’s Resolutions were able to keep them beyond 6 months.
But there’s more research (of course there’s more) due to the extensive and timeless nature of these resolutions. In fact there have been numerous studies and reports created surrounding this concept of resolution-making and new habit forming. And with modern technology some interesting observations have been made.
With the rise of social media there has been an interesting phenomena observed:
”Identity-related behavioral intentions that had been noticed by other people were translated into action less intensively than those that had been ignored.” When Intentions Go Public
Whoah, did you catch that? In plain English, when you tell others about your intentions you seem to think of that as partial success and then don’t both with actually putting those words into action! Or to put it another way, if you want your resolutions to be successful…don’t tell anyone. Don’t broadcast your goals all over social media and consider yourself better instantly.
If you have the time, the study I quoted above is a fascinating read and speaks to some interesting characteristics of the human psyche. It’s a good warning for what so many others tend to joke about: show discretion with what you share on social media. This seems to be particularly true if you want to improve yourself and make some new resolutions for the coming year.
Given our newly discovered knowledge I’ll share my New Year’s Resolutions for 2018 below and I would encourage you to do the same:
- xxxxx xxxxx xxx xxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xxxxx xxx xxxxx xxxx xxxx xxxxxxx xxxx xx xxxxxxx xx.
- xxx xxxxx x xxxxx xxxxxx xxxxxx xxxxxxxx xxxx xxxx xxxxx xxxxxxx xxx xxxx xxxx xx xxxxx xxxx xxxx.
- xxxxxxx x xxxx xxxxxxxx xxx xxxxx xx xxxxxx xxxx xxxxx xxxxx xx xxx xxxxx xx xxxxx xx xxxxxx xx xxxxxxxxx xxx xxxxxx.
And though I may not approach these with the same fervor and fear that the Babylonians may have held, I do hope I’ll be able to share my success with you as 2018 comes to a close. Whatever you may choose to do for your own resolutions and your goals for the new year that lies ahead of you – I wish you all the success and best of luck as you strive to be the best version of yourself.
December 21, 2017
Re-Launching Mautic Meetups
Recently I received an email letting me know that my subscription to Meetup.com had expired and as a result the Meetup groups for which I was listed as organizer were now listed without an organizer and in danger of being shut down.
This got me thinking; if I had a problem with keeping up with one more subscription then I imagine there were others as well. Digging in even deeper I discovered there were other Meetups not forming simply because of the costs associated with the existing platform. As a result Mautic was fighting for consistency and a unified platform for the community merely due to the tool being used! Our community was limited from growing properly not because of the community but the tool we were using. Quite contrary to the very reason we were using the platform!
This gave me an idea. What if there were a better way? And just like that a new Mautic initiative was undertaken. I reached out to a few of the community who I suspected would be interested in working on building something better and we got to work.
Identifying Our Needs
The first thing we knew we needed was to clearly identify what we needed from a group networking and meeting solution. As it turns out there is not necessarily a long list of requirements that we simply must have in a tool.
Our current groups were semi-organized, gave people a way to join them, share upcoming event details, and in some cases share photos from past meetings. That doesn’t sound like something too difficult to find in a solution. Oh, and there was one more objective that was ranked quite highly on our list. We were intent on finding a solution that held to the same core beliefs and standards that Mautic holds. This meant we wanted an open source solution. Based on the list of our needs we believed this was completely doable.
Aside: I believe strongly in using open source solutions. I do so when the tool is the best at what it does and performs better than other solutions available. In other words, open source is not (and should not) be the sole deciding factor when selecting a tool.
Evaluating The Alternatives
The next task we undertook was to evaluate the various solutions available keeping in mind the list of requirements we wanted to see. The list was surprisingly shorter than anticipated. There was the obvious incumbent that we had used before and we knew the shortcomings associated with that platform. Then there were a variety of hybrid solutions where we could make something work if we cobbled a few different tools together or if we chose to neglect different aspects from our requirements list. That sounds rather problematic especially when our list is rather short and honestly quite simplistic.
Finally, after some thought and much review we settled on something far easier and quicker than we anticipated. With the help of a plugin for our existing website we could extend our current CMS to enable groups. This met the needs we had, increased our community opportunities, and finally much to our delight was an open source solution.
Once the decision was made the process of implementing was undertaken. This solution encouraged us to think about two more questions we hadn’t initially expected. The first question was quite relevant to our current initiative and the second question was far, far more existential.
- What do we call our community meetings?
- What is the main purpose for Mautic.org?
I’ll answer them in reverse order. The second question came about because we recognized that with the integration of groups directly into our website perhaps now was a time to evaluate the purpose and reason for our main website. What purpose does it serve and how does it enable our community to be bigger and better? Our current goal was to identify a way to enable our community meetings and not answer such a large question but there are a few minor steps we could take to better prepare ourselves for the future so when the time came to answer this question we would be prepared and ready.
The first question was one we new we had to answer and wanted to create something that resonated with our community and also hat-tipped to the many other open source projects that had paved the way for our success. And of course, it never hurts to create a name that’s unique and special to our community.
I am excited to share that after only a little deliberation we chose to call a community meeting a MautiCamp. These MautiCamps are a way for our community to meet in person at cities around the world on a regular basis. MautiCamps are organized and lead by local volunteers. Our existing MautiCamps are an incredible list of locations literally around the globe. It’s amazing how fast they have grown even in spite of a difficult community platform. I believe that this new open source platform built directly into our website and available to everyone completely free will make our community grow so much faster.
There are many more ideas and suggestions related to our MautiCamps that I want to share. Ways to make them even more successful and ways to empower volunteers to get involved. I can’t wait to share more. If you are a current MautiCamp organizer I would welcome the chance to talk with you, get your ideas about what’s been working and what needs improvement and share some of my initial thoughts for your feedback.
If however you are not yet in a MautiCamp or don’t see a MautiCamp close to you, or focused on a topic you’re interested in, then I have a challenge for you. Why not organize one yourself? There are resources available (and more coming as I suggested) to help you create a vibrant local community. You’ll be amazed at how many others may be close by already and interested and what better way to find new friends, learn new things, and grow your business then through the awesome power of Mautic.
December 16, 2017
Upcoming Mautic AMA
2017 is drawing to a close and it’s been a whirlwind of a year. There’s been so much going on in the Mautic universe it can be a bit overwhelming. Whether you’ve been around for the entire ride, or just joined us I have no doubt that you may have a few questions about things.
As you may have begun to notice I’ve been ramping up my efforts on sharing information. One of my focuses as we close out this year and start the next year involves how to empower more people in our amazing Mautic community. To that end I have been working on the best way to share information, organize my thoughts, and help get everyone on the same page in terms of Mautic: where we are, where we’ve been, and possibly most importantly – where we are going. I’ve shared several posts recently on my blog (here, here, and here) which give a few insights but I believe there are even more ways I can improve. Because I think there are probably still questions outstanding that haven’t been answered yet.
So, in order to help with that I am preparing to do something for the first time in Mautic history. I am excited to announce our first ever AMA (ask me anything). This will be an opportunity for you to ask your questions directly and hopefully get immediate answers. There’s general guidelines for the session and of course any deep technical questions or bugs you just want solved are not really the purpose of this time. To put it bluntly I won’t be “live fixing” anyone’s website. 🙂
However, questions about how Mautic should be used, ways to get involved, questions about the roadmap, our community future, leadership structure, GitHub projects etc…these are all welcome topics and I will do my best to give you good, clear, concise answers. And I give you my word, if I don’t have an answer – I’ll be honest enough to tell you I don’t know and point you to a resource that might be able to help.
The goal of this AMA is to ensure our global community, and you as an individual, feel confident in what we’re doing and also where we’re going. I hope this will be a fun, enjoyable and informative session where we can all learn and improve.
And lastly, if all goes well I hope we will hold more of these in the future. I’m not going to dig into specifics about what to expect (Remember this is our first one, we’re going to be learning as we go). But here’s what you need to know now:
What: Mautic’s First Ever AMA
Where: Mautic’s Slack Channel – # ama
When: December 21, 2017
Time: 10:00AM EST (The World Clock Meeting Planner – Details)
What To Bring: Your questions!
See you there!
Oh, and if you can’t make it you can still send in your questions.
December 13, 2017
Standardizing GitHub for Product Management
GitHub is a fantastic tool for organizing code, handling issues, and tracking feature requests. Mautic has always used GitHub for its code repositories and more. But there are struggle that come from tools like this and without proper organization or structure it can quickly make a project become a chaotic jumble of questions, feature requests, and code. A lack of standardization destroys an otherwise useful system.
I am proud of the organization that Mautic has around issues and the use of labels. This has historically been something we’ve done somewhat well. We’ve also made extremely good use of the basic code repository and release functionality. You can see this well-organized approach by diving into the Releases tab and noting how every release going all the way back is documented and tracked. It’s refreshing to see things like that and speaks to the consistent attention to detail we’ve worked so hard to maintain.
But I firmly believe there are always things that can be improved and our GitHub usage is no different. So I sat down and looked at our repositories and began exploring ways we could improve our organization and structure around our already amazing product.
Improving and Explaining Labels
I shared at the beginning that Mautic is very good in its use of labels as it relates to issues and pull requests. But I think sharing what those labels mean and how they are applied is helpful as we discuss a standardization of our GitHub account and organizational structure. Plus, I’m not sure it’s been clearly outlined recently how those labels are used.
Here’s a current list of our existing GitHub labels, when they are applied to issues, and how they should be interpreted.
- Backlog: Applied to any issue left in an open state longer than 6 months, not automatically applied yet but will be in the future.
- Bug: Applied to issues directly related to a bug in the production code.
- Code Review: Applied to issues that require additional review of code by core and community developers before merging will occur.
- Duplicate: Applied to issues that have already been submitted. New issues will be closed in deference to older ones.
- Feature Request: Applied to new features or modifications to functionality that is different than originally intended.
- Has Conflicts: Applied to PR’s mainly that conflict with other parts of the Mautic codebase. Must be resolved before merging.
- L1: Applied to issues where the fix is deemed lowest level of knowledge to create. Alternatively applied to PR’s where the testing is considered minor in time and intensity. Considered a Level 1 item.
- L2: Applied to issues where the fix is deemed to require a moderate level of knowledge to create. Alternatively applied to PR’s where the testing is considered moderate in time and intensity. Considered a Level 2 item.
- L3: Applied to issues where the fix is deemed to require a significant level of knowledge to create. Alternatively applied to PR’s where the testing is considered significant in time and intensity. Considered a Level 3 item.
- Needs Automated Tests: Applied to pull requests submitted without the appropriate unit tests. Every pull request requires unit testing of code.
- Needs Documentation: Applied to pull requests submitted without the appropriate documentation. Every documentation requires accompanying documentation.
- P0: Applied to issues considered critically important to resolve. These issues are ‘showstoppers’ and ‘break’ the entire Mautic system.
- P1: Applied to issues considered detrimental to Mautic functionality. These issues are important but do not stop day-to-day operations.
- P2: Applied to issues considered annoyances to Mautic functionality. These issues are high priority to fix but do not restrict usage.
- Pending Feedback: Applied to issues or pull requests that require further information or discussion before being added into work queues or testing.
- Pending Test Confirmation: Applied to PRs that still require a second successful test confirmation. /Every Pull Request requires 2 successful +1 tests before merging./
- Ready To Commit: Applied to PRs that have been tested and are ready to be merged.
- Ready To Test: Applied to PRs that have been submitted with completed code and are ready for community testing.
- Translations: Applied to issues that are related to translations. /All language translation strings are handled by Transifex/
- User Experience: Applied to issues and PRs that are related to how the end user uses Mautic and experiences the platform.
- User Interface: Applied to issues and PRs that are related to the user interface directly, typically these are cosmetic problems.
- WIP: Applied to PRs that are not ready for testing. These are Work In Progress and represent work actively being done by another individual.
I recognize that list feels long and possibly a bit daunting but I trust the somewhat exhaustive explanation will help clarify how Mautic applies labels to issues and pull requests and makes your life a bit easier as you contribute to the Mautic platform. Other labels may be added in the future either for temporary usage or as additional labeling is needed.
Improving Feature Requests
The way that Mautic handles feature requests is quite simple at the moment. We have a label marked Feature Requests which is applied to every issue created that represents a new feature request (See I told you it was simple.) There are a few problems with this basic approach to feature request tracking. First, this drastically clutters and increases the total number of “issues” on the project (notice the screenshot above – 728 Issues). This number actually includes 314 Feature Requests and inaccurately skews the number of issues. Second, with the current system feature requests are lumped in with every other issue in the system and it makes it exceedingly hard to identify what features have been requested and which are the most popular. This leads me to the first standardization I am recommending we implement in GitHub.
Standardize Feature Request Voting
Moving forward I recommend that the somewhat new “reaction” feature in GitHub be used for feature voting.
Specifically, only the following two reactions should be used for feature request voting: 👍 and 👎. A thumbs-up indicated a +1 vote on the feature and a thumbs-down indicates a -1 vote on the feature.
This will then allow anyone to quickly view the issues on GitHub and with the proper query be able to see a list of feature requests sorted by popularity. To make it easier for you here is the exact link you can use:
As a bonus side effect of this standardization we will be able to programmatically pull this list of issues via an API and allow us to inject a Top Feature Request List in other locations as well.
Improving Pull Request Testing
The second area where I think a bit of standardization may be helpful involves the testing of pull requests. Currently there is a core team in the community managing the testing and committing of pull requests. This ends up appearing to be a bit unclear and not as visible as it should be to the community as well as not demonstrating a clear path for community volunteers to grow into various leadership positions. The core team is open to community members who demonstrate their ability to properly test and merge code contributions. However, the privilege of that responsibility has to be earned through a building of trust. That trust can’t be established without some method of consistent demonstration of personal reliability.
This brings about my second recommendation for GitHub standardization.
Standardize Pull Request Testing
Our Mautic community needs greater empowerment as I shared above in playing an active role in which pull requests are merged. Our volunteers also need the opportunity to grow into greater leadership roles and become critical parts of the core team. This means community testing of pull requests. Specifically, a +1 listed as a comment on a pull request implies that the developer has tested the PR in accordance with the test procedures listed in the pull request description.
Alternatively, adding a -1 comment signifies the developer has followed all the same steps and procedures outlined in the pull request but did not find the fix to successfully solve the issue.
Notice in the above comment additional text was added (this is acceptable as long as the comment begins with the appropriate +1 or -1 designation.
And you guessed it, as a bonus we can programmatically use the comment text to extend the use of GitHub to other systems and improve communications as well as automations.
It may not sound like a terribly fancy system, or even a huge difference in how we manage our GitHub account currently but these little improvements and standards in how things are managed make our entire development process better and more streamlined. And the more organized we are, the more efficient we can be. The more efficient we are the better and faster we can grow.
You now have all sorts of new knowledge and insight into Mautic development, go find your favorite feature requests and 👍!
December 11, 2017
Creating The Mautic Credit System
Recently I published a blog post Recognizing Mautic Code Contributors. If you haven’t read that post I’d recommend taking a few minutes and reviewing it before continuing. I want you to review it because there are good things and bad things in that article. While any level of tracking and metrics is better than none there is always room for improvement.
In fact, one of the things that I have been most focused on in recent months has been properly tracking volunteer activity across Mautic. As you read Github does provide some nice metrics to allow for some level of acknowledgement and recognition (purely as it relates to issues and pull requests) but this is such a fractional and minor view of the Mautic community I knew we still had a long way to go. I also knew my good friend Dries Buytaert recently shared a blog post about the credit system implemented in the Drupal community and this reminded me of the work that had already been done in this area. (What better way to build a system then on the shoulders of a giant.) And so we began crafting a Mautic credit system.
The Idea of Merit
As with any system we wanted the Mautic contributions to be recognized in a special and unique way. After consideration of both fun names as well as common names we settled on something that made logical sense and also had a fairly nice benefit of being an ‘M’ word. In the Mautic community a volunteer can earn Merit through a number of different ways. Below I’m going to outline some of the ways a community member can earn Merit.
Community Involvement: GitHub
We wanted to look at community involvement across a wide range of metrics beyond just GitHub, but at the same time recognized that there was much more activity going on in our repositories besides just issue creation and pull requests. And so we set out to create something special. I’d like to share with you some of what we’ve created so far and then outline what we plan to create next. Please keep in mind that everything is still very much in a beta stage and changes will continue to be made as the system evolves.
In the beginning we recognized those volunteers who contributed issues simply as a matter of volume and frequency. With the introduction of Merit we have taken that rather rudimentary beginning and created something much more intelligent. A volunteer can receive Merit based on a number of factors when opening, editing, or closing an issue. These factors include the level of difficulty of the issue, the thoroughness of the issue report, the adjusted status of the issue, the number of comments on the issue at the time of the status change and other factors. Sounds incredible? That’s because it kind of is.
Similar to issues the early days for pull request attribution and recognition revolved almost entirely around the creation of a pull request. The Mautic credit system again allowed for a fairly massive improvement to this basic implementation. Mautic contributors can receive varying amounts of Merit based on complexity of the pull request, the creation, and subsequent merging of the pull request (and other factors as well).
The very nature of comments on issues and pull requests is a tricky one as this can be the most abused area within a credit system. Volume of comments does not necessarily equal quality contributions. Merit attempts to intelligently recognize the value that a comment brings to the issue or pull request. I will be the first to point out that this area will require the most refinement and improvement as we learn what represents value. Merit will get better over time.
Community Involvement: Forums
But I knew we couldn’t stop with just the code in Mautic. In fact, this was only the beginning. The second area where Mautic needed to create some reward system was in the forums. Just as with the GitHub facet of the community I was interested in gaining a much more detailed understanding of how the community was growing and improving as it relates to our forums. And as I have shared before – the better our knowledge the better equipped we are to improve.
In the Mautic Credit System we provide Merit for a wide range of activities. One of the most obvious ways to gain Merit through the forums is by creating a post. Each post creation gives a certain amount of Merit to the forum poster. While this is the most obvious way it is also the lowest weighted method (again due to the nature of determining value associated with a specific post).
Forum Post Solutions
The greatest way to earn Merit through the forums is by solving another posters question. When a forum post is marked as a solution Merit is credited to the solution’s author.
Community Involvement: Slack
There is also value to the Mautic community knowing the activity of volunteers as they engage in conversations within the community. Volunteers in Mautic receive Merit when they log in to the Mautic Slack team, when they log in for consecutive days, and when they login and post messages to channels. As with other ways of gaining Merit the Slack engagement method is a constantly changing algorithm and will improve over time.
Community Involvement: Meetups
Mautic Meetups are offline events but they can still be (and should be) a way for community volunteers to gain Merit. Clearly a community member that attends a Mautic Meetup, or even better organizes and leads a Mautic Meetup should receive Merit for their involvement. The Mautic credit system accounts for these events and offers Merit for them.
Community Involvement: Translations
Translations in Mautic are a huge part of our community and an aspect that makes Mautic truly impressive. As a result we wanted volunteers to be rewarded for the value their translations bring to Mautic’s global initiative. We use Transifex for managing language translations and the Mautic credit system will be deeply tied into this platform so Merit can be given based on involvement on translations as well.
New strings added to an existing language, language string reviews, new languages created, and language moderation are all parts of the Transifex translation system that are monitored for Merit.
Community Involvement: Blog
Mautic volunteers are active in many parts of Mautic and writing articles that are published on Mautic.org is an additional way to help share the Mautic name and be involved in the community. As a result Merit can also be earned for blog article contributions.
The Future of Merit
As you can probably begin to tell from the above list; Merit is a constantly growing and improving concept. I don’t claim it to be perfect and I certainly don’t think the work on this new Mautic credit system is complete. Every day brings new challenge as well as new opportunities. I have numerous other ideas where we can implement Merit. The beautiful thing about our current technology is the seemingly never-ending list of APIs.
And so the Merit system will continue to evolve and grow and improve. We will learn which of our existing systems needs to be tweaked and make changes based on our understanding and how the community grows.
Merit Implementation Team
Because openness and transparency is a cornerstone principle within our community and because (as I just shared) the future of Merit involves constant improvement and growth, a team is being created within the Mautic community help establish this initiative and make the result something the entire Mautic community can be exceptionally proud of.
Merit Open Source
You had to know this last paragraph was coming right? Mautic is one of the leading open source companies in the world. We build incredible open source software and we distribute it to the world for everyone to benefit from. Open source is in our DNA. Open source is how we see the world.
We are building the Merit platform as an open source tool so that other communities in the future can also implement what we believe will soon be one of the most robust volunteer recognition system ever built.
If you’ve ever experienced the Mautic community or used the Mautic marketing automation product you will already know that the products we create and that our community is responsible for are beautiful, sophisticated, powerful and yet easy-to-use. The Merit system is no different. This means it may be a little while before we tag a version 1.0 but it doesn’t mean we won’t be sharing our progress and incorporating feedback along the way.
Next Steps with Merit
I am excited to lead the Merit Implementation Team and help organize volunteers around this effort. I shared in the beginning of the post that we had already begun this initiative and I will be sharing frequent updates on this blog as progress is made. If you are involved in the Mautic community you will begin to see signs of Merit appearing in the various channels I outlined above. And finally your community member profile on Mautic.org will begin to showcase all your volunteer work.
I hope you will be as excited as I am about Merit as you begin to see the system we’re building and the ways it will recognize the invaluable contributions of our volunteers. Mautic is one of the best open source communities in the world and now we will have a practical and specific way to recognize and reward the great volunteers that make it up.
December 8, 2017
New Themes in Mautic
Unique landing pages and email templates are incredibly popular and critically important to most businesses. These are ways for the business to make an impression with their audience that stands out. They want to create a look that is specifically their own. And they want to make sure their brand is represented across all of their marketing efforts. Whether it’s a landing page, or email and form, or even something as simple as a notification Mautic wants to make that seamless with the rest of the brand.
Mautic has always been acutely interested in creating a platform that allows each marketer and each business the opportunity to create their brand experience across all their digital media.
From the very beginning of Mautic we created a way for there to be an infinite number of custom themes within Mautic. These themes included all of the elements I listed above. We wanted the marketer to have complete control over the entire marketing outreach; regardless of channel. This meant creating a way for marketers to use their own themes. And a way for developers and others to create additional themes and add them to Mautic .
Extending that even further there’s an opportunity in the future for community to create and then share their theme packs. This concept is nothing new to anyone coming from an open source community in the past (content management systems such as Drupal, WordPress and Joomla are notorious for their plugin systems and marketplaces). In Mautic we do things a bit differently since these theme packs offer more than a website theme or template. But the underlying principle remains the same.
The creation of this marketplace is the topic for another blog post which I’ll publish in the near future (hint: we’re getting things ready and we need your help!) For now I want to turn our attention back to themes and share with you some exciting news.
In the 2.12 release of Mautic we are including additional core themes. Keep in mind that usually themes are added to core only once in a great while. And this will be the case for Mautic in the future too, however, 2.12 is a special release. Since we have not yet launched our marketplace and there are so many using Mautic (Over 100,000 now using Mautic) we wanted to make sure we had incredible default themes available for everyone use. And we wanted to improve on the ones that were already existing in core. I’m so excited to announce that we will be including not just one theme, but four new themes in Mautic 2.12.
I won’t keep you waiting any longer, below are a few screenshots of those themes. But first here are a few things to keep in mind.
- Every theme is fully responsive and works on all device types
- Every theme includes layout and design for emails, forms, and messages
- Every theme is completely customizable
- And lastly: Every theme is completely free and available for immediate use
And now, check out these new themes:
These are some beautiful, responsive Mautic themes. Marketers will be able to take these four highly flexible and customizable themes to build a unique and special digital experience. I couldn’t be more pleased with these themes and I am thrilled to see them included in Mautic 2.12.
I’d like to offer a very special note of thanks to GaberNeighbor · GitHub for his time and creativity with these themes. And this gives me the chance to encourage others to do the same. Mautic is a great way for designers and developers to share their creative talent. Themes in Mautic are seen and used by over 100,000 businesses. Creating themes is an exciting way to get involved in Mautic.
If you’re interested in getting involved in this way be sure to check out the Mautic #design slack channel and read the Mautic Developer Documentation for other helpful theme creation resources.
December 6, 2017
Improving Mautic Query Speeds
Creating robust applications capable of scaling to handle millions of records in any industry is difficult. Often as a startup there is a focus on speed and agility in development, but that same speed comes at a cost. Fastest development does not always equate to best development. In the startup life we are focused on creating a product people want. Actually, scratch that, we start by thinking about creating a product people want; but in reality we quickly realize we have to create a product that people will love. And we have to do it immediately.
And whenever a startup moves that fast they focus on today’s issues. Most of the time that’s valid. Very rarely does a startup have to face massive scale problems. Those are tomorrow’s problems solved another day. Mautic was no different. We built our Minimum Lovable Product (MLP) and began an incredible journey. The speed at which Mautic accelerated while exciting is not (or should not be) surprising. Powerful free software performing tasks never before offered as an open source downloadable product is certainly something to be excited about. And the world was excited. But this acceleration has happened to others before and so in that sense Mautic wasn’t alone. Which means the problems and challenges we have faced (and the solutions we arrived at as a result) are also not unique.
I don’t say any of the above as an excuse, but instead as background. An introduction because Mautic developers are some of the finest in the world. My previous post recognizing the Mautic code contributors attests to the work they have done and continue to do. But there is a different type of thinking that comes into play when taking software to the next level. Things like query language becomes critically important. Here’s an actual example from Mautic.
$q->from(MAUTIC_TABLE_PREFIX.'leads', 'l') ->andWhere(sprintf('NOT EXISTS (%s)', $dncQb->getSQL())) ->andWhere(sprintf('NOT EXISTS (%s)', $statQb->getSQL())) ->andWhere(sprintf('NOT EXISTS (%s)', $mqQb->getSQL()))
This partial query is used whenever you attempt to load up a list of emails in Mautic. Normally this isn’t a big concern and the query above would have no issues. However, when dealing with a large number of contacts the above query results in significant slowdowns. What’s the solution? Well in this specific case,
howlinghuffy (Nick Hough) · GitHub came up with a rather simple and seemingly equivalent query that yielded drastically different results.
$q->from(MAUTIC_TABLE_PREFIX.'leads', 'l') ->andWhere(sprintf('l.id NOT IN (%s)', $dncQb->getSQL())) ->andWhere(sprintf('l.id NOT IN (%s)', $statQb->getSQL())) ->andWhere(sprintf('l.id NOT IN (%s)', $mqQb->getSQL()))
That’s right, by replacing
NOT EXISTS with
NOT IN the query yields the exact same results. But from a speed perspective the results are far from the same. Before the modification when Mautic managed 500,000 contacts this page took approximately 200.5 seconds to render. After the query was changed the same query takes 1.04 seconds. That’s right, 200 seconds down to 1 second. That’s a 200x speed improvement.
Are there other queries within Mautic that should be evaluated and re-written? Absolutely. And the Mautic community is best equipped to handle this challenge if they know what they are looking for. This was one example. Let’s go find others!
December 5, 2017
Recognizing Mautic Code Contributors
Recently I decided to do a little digging into Mautic’s contributor logs to see who was doing big things when it comes to Mautic’s marketing automation code. I also wanted to compare how we compared 2016 to 2017 since we’re fast approaching the end of 2017. It seems hard to believe that we’re almost ready to close the book on another year!
I thought the best thing to do would be to look at a variety of stats first comparing different metrics between last year and this year. One thing that I believe is very important to mention at the beginning before we start looking at specific numbers is how much of Mautic community growth can NOT be measured by a number or a specific number of lines of code. The following metrics simply report on one aspect of the overall community and should in no wise be considered indicative of the community as a whole (good or bad). The code aspect is merely one facet of our community.
Number of Developers
The number of developers contributing code to Mautic can be viewed in several different ways so I’ll share a few of them and let you draw your own conclusions.
This first graph shows the growth of developers and reviewers over the past two years. As you can see we have a steady increase in the number of “contributors” over the past 24 months. This time period covers Mautic versions 1.2 through 2.11 and does not include the month of December of this year, 2017. There are significantly more reviewers than developers but this is expected and both are still considered contributors as Mautic requires reviews to be done before a pull request can be merged. The Mautic company is identified by the dark grey in the chart as well. You can see that although proportionally Mautic the company (MCO) contributes the greatest number of developers than other companies there are increasingly more and more months developers and reviewers from the community.
There is an important side note that should be considered when reviewing the number of contributors and the relationship between MCO engineers and community developers. The amount of code contributed by MCO engineers comprises approximately 82%. This means that although the number of developers in the community is increasing MCO is still the largest single contributor by a significant amount.
But just to give a bit more recognition I’d like to share a specific list of the top 20 individuals who have contributed code to Mautic in the past year. This list isn’t exhaustive; there are many more (as the stats above demonstrate). But these individuals deserve a special specific callout for their work. Here is a list of the top 20 individuals and the number of lines of code they have contributed to Mautic.
- alanhartless*, 91179
- escopecz*, 55362
- dongilbert*, 39954
- mqueme*, 33581
- stollz, 22008
- virlatinus*, 20850
- GaberNeighbor*, 12113
- Maxell92*, 10950
- kuzmany, 6768
- thecodeine, 5525
- drmmr763*, 5287
- npracht, 3783
- MarkLL, 2541
- mikegillis677, 2309
- Woeler, 1546
- shulard, 1439
- jordan8037310, 964
- isleshocky77, 750
- lightweight, 678
- Dreiser*, 634
But code contribution is more than just lines of code. (I’ll be the first to suggest that the number of lines of code may be a terrible metric for judging activity…more on that later). So here is a second list. This list recognizes the top 20 individuals and the number of merged pull requests to the Mautic code. Again, they each deserve recognition for their contributions.
- alanhartless*, 628
- escopecz*, 390
- mqueme*, 150
- dongilbert*, 98
- kuzmany, 83
- virlatinus*, 76
- mbabker*, 37
- MaxWebmecanik*, 27
- drmmr763*, 23
- Dcoutelle, 18
- isleshocky77, 16
- arulrajsm28, 12
- phil-davis, 11
- shulard, 11
- SamWebmecanik, 11
- chandon, 10
- jordan8037310, 9
- Woeler, 9
- npracht, 9
Comments & Pull Requests
The second chart I would like to share with you is in relation to the overall comments and pull requests that the Mautic codebase has received over the previous 24 months.
This chart highlights the pull requests (in red) and the comments (in blue) as they have occurred since January 2016. Here again we see a gradual increase in contributions (trend lines added). As you would expect the amount of discussion surrounding code contributions increases over time and there is a gradual increase in the number of pull requests submitted as well. Peaks typically correspond with the various release dates of the Mautic code.
Code Comment Growth
The next chart demonstrates a comparison between comments on code between last year and this year (again keeping in mind that this year we are not showing data from the month of December).
I share this chart because it signifies the engagement aspect from the community. Again, comments and involvement increases around release times as you would expect, but the overall trend line demonstrates increased discussion occurring around the code over time.
Of course all of these charts above are specifically related to the pull requests submitted and as a result there is a significant portion of the contributor engagement that is not represented by these charts. The reason for this lies in the feature request section of GitHub. Feature requests are ideas generated by the community for future consideration within Mautic. Because they are not associated with a specific pull request they do not show in the above stats.
Current Code Status
Let’s now take a look at our current GitHub status and repositories and draw some conclusions about where we have come and where we are going to go from here. This is also a chance to identify ways we need to improve processes and new areas of focus for 2018.
Currently in GitHub there are 726 issues and 103 pull requests. Breaking the issues down further we have the following stats:
- 321 issues marked as Bugs
- 308 issues marked as Feature Requests
- 171 issues marked as Backlog
- 98 issues not labeled
- 20 issues marked as Pending Feedback
There are several conclusions we can draw from this. First, because we use GitHub for our bugs and feature tracking there is a slight skewing of perception when viewing the open issues on Mautic. Instead of there being almost 730 “bugs” in Mautic code, it is better to view this list with the appropriate filter applied. When you do this you’ll find that the relationship of bugs to pull requests is much closer to a reasonable ratio with 1 pull request existing for every 3 bugs.
The second item that is a problem for Mautic is the 98 issues that are currently unlabeled. This means someone has written up an issue but it has not been reviewed by anyone with appropriate permissions for applying a label. This is a problem. There are two possible explanations. Either we don’t have enough active community members monitoring the GitHub repositories to mark new issues with the appropriate labels or we don’t have enough community members with the knowledge to apply the appropriate labels and therefore they don’t add them.
Side Note: There’s also the problem presented by GitHub repositories and permissions that allow or disallow access to label creation and application of those labels. This is something Mautic has not yet solved successfully.
In the future we need to educate community members on reading and assigning labels to issues so that they can be correctly categorize as they are created. We also need to determine the number of community volunteers actively monitoring GitHub repositories. One of the first ways we can determine this number is by looking at the number of reviewers we saw in the charts earlier. This number gives a suitable estimates of those contributors capable of responding to issues and therefore also capable of attaching labels to issues.
There are several advantages to correctly categorizing issues. With proper categorization we can more readily identify which bugs need to be resolved first and which are feature requests instead of actual bugs. This will increase productivity from the developers writing pull requests as well as clarify public understanding of the project’s status.
Lastly, from the list of issue stats we can see that there are a significant amount of feature requests. We can draw a conclusion or two from this metric as well. Feature requests can mean the software is not completely fulfilling everyone’s ideal marketing solution (though this is a more delicate issue as Mautic should never attempt to be all things for all people). More importantly the relationship between number of feature requests submitted and number of pull requests submitted suggests that the community is made up of more end-users (marketers) or implementer types of users rather than coders or developers. In fact, when we take this ratio and compare it to the downloads from Mautic.org of the software we find a fairly similar breakdown of user types. This means the assumption we draw from the feature request submissions is accurate.
Understanding the make-up of our community when it comes to the Mautic code helps us to continue making improvements and growing. I hope that as you have read through this you’ve been able to get a better understanding of how I look at things and what the different metrics you might see or hear actually mean. Once we have a shared understanding of how to look at the Mautic codebase we will have a greater opportunity for moving faster.
January 24, 2017
A recent Simon Sinek talk has been making its way around the internet and if you haven’t watched the video I’d encourage you to take a few minutes and listen to what he has to say. But before you jump on the bandwagon about how much you like or dislike Simon I want you to stop and think – regardless of your feelings about a person or their views consider the value in listening. Not hearing, and certainly not agreeing, but merely listening. Too often I think we form our opinions and then filter what we truly listen to as a result of our own way of thinking. But you don’t have to take my word for it…
Bunny Trail: As a kid I grew up watching (and admittedly liking) Reading Rainbow with Levar Burton. This was a classic tv series that even now I remember bits and pieces from. As I am writing this post I’m reminded of a phrase Levar would say every time before the “book reviews” section of his show. He would always introduce the reviews, provided by other children, with the same line. “But you don’t have to take my word for it.”
Obviously the idea of hearing opposing views and actually listening to them existed long before I ever suggested it. In fact, even one of the greatest philosophers of all time shared something similar. Socrates, the Greek philosopher and one of the founders of the entire concept of Western philosophy said this phrase:
“Wisdom is the ability to hold two opposing views in mind at the same time.” – Socrates
There are many times when we talk about wisdom and knowledge. And sure, we know the difference between the two: knowledge the ability to recall facts and figures; wisdom the practical application of knowledge. But there are almost always areas where identifying and demonstrating wisdom is incredibly difficult. Situational wisdom as it applies to every day living seems quite easy to understand. Basic example – I know how to change a tire. Raise the car by placing a jack under the mount near the flat tire, remove the hub cap, unscrew the lug nuts, pull the tire off the vehicle and replace it with a new one. (Boy, that sure sounds simple but trust me…every single one of those steps has about a million ways in which it could go wrong, terribly terribly wrong).
Those steps I just shared are knowledge. I have the knowledge about how to complete the task. Now when I actually have to change a tire and I realize that unscrewing the lug nuts take a significant amount of torque and the longer the tool I use the easier the job becomes (I’m ignoring the mechanics and their air drills for the moment); I’ve not only taken that knowledge but applied it to a specific instance. I’ve inferred more into the process and I have a deep understanding now not just of the steps but also how to perform them. This is knowledge applied, this is wisdom. I trust we can all see and agree with that. I’d call that situational wisdom, it’s knowledge applied to a specific situation.
The other type of wisdom I think about (and the one where I believe we struggle more to see practical application) I’m going to call abstract wisdom. This is knowledge applied to an abstract concept. In these situations there’s not evidential or tangible product by which we can judge whether or not wisdom exists (knowledge has been applied). These situations are the ones I am referring to when I talk about demonstrating wisdom.
We all laugh about the internet and this world of opposing views where everyone has an opinion. Take this meme for example:
This is all too common of a scene, and no I don’t mean dressing up in pirate gear and running along the beach. But the underlying principle of how we address opposing or conflicting views.
By now I hope you’re starting to see what I’m suggesting. One way we can actively demonstrate our abstract wisdom is through our ability to not just hear but listen to opposing views; to actively hold them in our minds and consider them thoughtfully. Rather than jumping to conclusions based on our opinions or previous experiences (or how we feel about the speaker’s hair) we can demonstrate wisdom through thoughtful consideration of opposing ideas. As you browse the internet, engage with co-workers, or even sit around the table with friends and family keep this thought in your mind. Be quick to listen and slow to speak. Process what you’re hearing and form an opinion based on knowledge. When you do this you’re demonstrating wisdom. You’re applying your knowledge to the conversation.
Have ideas on other types of wisdom? I’d love to hear them. I’ve only briefly touched on two forms. Agree? Disagree? Let me know what you think, I’m listening. (See what I did there?)
“Most people do not listen with the intent to understand; they listen with the intent to reply.”
― Stephen R. Covey
January 17, 2017
Social Media: Personal vs Professional
We all know those people on social media who are incredibly proud of their small business, startup, or work ethic. And of course we know those Facebook friends who share every intimate detail of their day and their life. The question that interests me is which is a better use of social media and which is more appropriate. Even as I type that last sentence I struggle with such a harsh and complete distinction of a right vs wrong use of social media. Let’s look at the pros and cons for these two approaches and then see if we can draw a conclusion about the right approach to a social media strategy.
There are many different types of social users and I still vaguely recall reading a humorous post at some point in the past about the top 10 different social profiles. Although that post was shared with light-hearted joking there was value in the labels. And so even though I am only drawing attention to a couple of those profiles I want to focus on them for the sake of comparing and contrasting them.
The Eternal Professional
This is the person who is forever posting business advice, their tips for success, or re-sharing the latest Simon Sinek video with the cliche comment, ‘this is how we do it at my company”. The eternal professional is constantly seeking new ways to say the same thing. “Here’s my business, you should be interested.” The problem with this approach I believe is the failure to understand their audience. How many people truly want to see what you’re doing in your business on a daily basis. At what point does sharing your business dealings become a cold and impersonal advertisement? The risk of the eternal professional is a lack of interest from their friends and followers. Gradually you’ll lose their attention, they will scroll past your posts faster than you can say, “business brag”. But there has to be some upside to this approach to social media right? I believe there is. Just like the old adage says, “the squeaky wheel gets the grease”, there is certainly some value in being the loudest proponent for your own startup. You’re actively putting your brand in front of the eyes of your fans. Whether they read your post or quickly continue their phalangeal flicking their eyes and their brain have been imprinted with your business brand. Congratulations you’re becoming a master of subliminal marketing.
The Exasperating Personal
This social sharer is the friend or family member who believes the world is fascinated with their every mundane life detail. No personal problem is too big or too small to be broadcast to the universe. Their posts show you how much they love their coffee, their breakfast, their kids, their wall color, their animals, their…well, you get the idea. Everything is shared. The problem with this is similar to the professional’s problem we looked at first. There comes a point when a little filtering and self-moderation becomes a good thing. Do your friends really need to know about the color of your toenails this week? Do you believe their lives are better as a result of seeing your breakfast burrito? The risk of the exasperating personal is alienation from your followers. When everything is shared, nothing is special. You don’t want to be labeled as the self-interested, self-obsessed social sharer. But there’s a positive here too. Connection and endearment are the two biggest benefits of sharing personal stories. You have the opportunity to connect with people. They see your life details and feel as though they know you and can relate to you. You may bring a smile to a face, share a laugh, or even possibly begin to build a relationship.
As I look at these two personas I realize I’ve oversimplified things to an extent. As I shared previously there are more than two profiles and variations on those as well. But there’s value in a quick introspection of your social persona as it relates specifically to these two types. I too struggle with this dilemma. After writing the above descriptions I believe I fall more solidly in the Eternal Professional category. And I see the pitfalls of that approach. I am also strongly against the overtly personal approach as well. But as any good, self-respecting writer must do, I must draw a conclusion.
There is no decision that we can make that doesn’t come with some sort of balance or sacrifice.
– Simon Sinek
The truth of the matter lies in a familiar and frequently shared topic on my blog: balance. Once again, as with so many other areas of life;
balance is key. Being able to identify your tendencies will allow you to focus your time and attention on improving your balance. In this case don’t be so focused on the professional that you lose touch with your personal side; or contrary to that, don’t be so passionately personal that you neglect to share things of worth or value to others. There is nothing wrong with building a brand, sharing business advice, and growing your followers for your startup; but be moderate. Think of your audience. Write your posts with your followers in mind instead of yourself.
Therein lies the second observation: focus. Focus on your friends and followers instead of yourself. By shifting that focus you will be mindful about what you share and even when you share it. Be relevant, be interesting, be inspiring, and be entertaining.
I know being able to identify my own tendencies is the first step in improving myself and so I expect in the very near future you’ll see a better balance in my posts. I trust this post will help you evaluate and improve your social profile in the future as well. What kind of social sharer are you? Do you think you should change? Find your focus and be more balanced? I look forward to hearing what you think.
January 10, 2017
The Importance of Planning [Practically Speaking]
I wrote previously about the importance of planning and gave 5 simple reasons why planning is critically important. Since I wrote that article I’ve received hundreds of comments on the topic and thousands of views. Clearly this is a topic that people are interested in. As I re-read the article though I discovered something was missing. Practical application. Yes, there is definitely a need for having solid reasons why planning is important, but there’s also a great deal of usefulness found in applying those reasons to everyday life and identifying how that planning can be put into practice. In this short article I’d like to give you a follow-up 5 ways that you can implement planning in your daily routine and through your actions demonstrate why planning is important for success.
Practical Step One: Keep a Journal
Previously I wrote about the importance of writing out goals. I’ll touch on this more in a future point when we look at setting daily goals. In this first practical step though I want to encourage you to begin keeping a journal. There is tremendous value in writing down your thoughts, your ideas, and your feelings. Ooh, did that last one get you? Not everyone like to write down feelings. In fact I understand it can be quite challenging to be honest with yourself and actually make your feelings ‘real’ by putting them in writing. This is a very important process. Journaling is in fact critically important to your planning process. Let me explain. By putting your ideas and thoughts down on paper you are keeping a log of your days and your time. What better way to plan your future than to have a record of your past and present.
Still not understanding? Think about it like this. The next time you start to make a plan and you have a question about the feasibility of your idea, or your timeframe, imagine you’re able to glance back in your journal and see how long something similar took you in the past. You could see your idea as it unfolded, your feelings about the process and a realistic idea of how long it took you to accomplish (or abandon) the idea. In this way your past directly influences your future and advises your planning.
I recently discovered the Best Self Journal. It has some excellent features which allow you to do all of the above and even some things I’ll touch on later in this post. I don’t recommend many products directly but I’ve found this journal to be incredibly helpful. Have you found a journal that works particularly well? I’d love to hear about it!
As this relates to time and a daily routine we can easily move into our second point for daily applications of planning.
Practical Step Two: Maintain Your Calendar
The second step I would recommend when it comes to the importance of planning and what that looks like in a daily routine is maintaining your calendar. The best way to prepare, to plan, is to be organized and intentional with your time. Schedule your days and your meetings. Be specific in what you want to accomplish throughout your day.
I remember once reading that Warren Buffett never scheduled meetings more than 24 hours in advance. He did so because of the very real possibility of schedules changing and things becoming less relevant the farther away they are scheduled. Obviously this is a bit of an extreme on one end of the spectrum but it proves an interesting point which we’ll discuss in in practical step #5 below.
For now I would suggest a more balanced approach. Rather than no schedule (or a one-day schedule) maybe look at a weekly calendar. I’ve personally found that anything longer than that tends to make the meeting and the information shared less relevant. If it’s important then make it happen. Maintaining your calendar and prioritizing your time is critically important in your planning process.
Practical Step Three: Organize Your Email
The third practical step in planning to implement on a daily basis involves that dreaded disaster, the maelstrom of messages. You guessed it – your inbox. Ugh, I have no doubt we all struggle with email organization. I’ve seen innumerable methodologies and processes for achieving what some like to call “inbox zero”. If you’re unfamiliar this is the state where your email inbox holds zero messages. And this state is not achieved because you mass delete them all. No, every email is to be processed, responded to, tagged or tucked into a folder. While this is certainly one method of inbox organization I don’t believe it’s the only one.
My email is one of the central ways I plan and organize my life. I use my email as my brain in many ways. What that means is for me I appreciate having my emails present in one place (the inbox) and easy to scroll through. For me this works well. I can jog my memory about tasks to complete, people to contact or meetings to schedule (see Practical Step #2 above). As a result of this way of using email it’s not helpful for me to have a zero message inbox state. What is far far more important is to have a zero unread message state. That means my emails may continue to live in my inbox, I may flag some as important to make sure they catch my eye later, but I don’t archive them all. Sure, I will archive irrelevant messages, delete the junk ones, but many will continue to live in my inbox. The important thing is they are read. I have reviewed the contents and am aware of each message.
I understand this method might not work for you either. The important thing to consider is not the exact method you use, but rather that you use a method. Keeping an organized email inbox means you are in control of your thinking and your time. You are actively planning how you respond to people and how you manage your time.
I know I’m going long on this point but since email is such a major part of our lives I feel the need to mention one last practical point. Don’t let email control you. By keeping an organized email system you are planning your email time effectively and ultimately planning your life more productively. Don’t spend your days in your email. Keep it organized, plan your approach, and be intentional about it.
Practical Step Four: Set Daily Goals
The fourth point involved in practical daily planning involves setting daily goals. I briefly touched on this earlier when we discussed maintaining a calendar (and even a bit with the journal).
The thing I love about these practical steps is how they are intertwined and connected. Each of these daily, intentional items work together to make your planning better and your success inevitable. They are important.
The journal I mentioned previously gives a great daily layout which includes a spot for daily goals. This is a fantastic way to organize and plan what you would like to accomplish TODAY.
The idea of daily goals is a very fun and practical way of implementing planning. With daily goals it’s easy to see success or failure. Over time your goal-setting will become better and better and you’ll find yourself becoming an expert in knowing what is capable of being accomplished in a day. The more you know abut your own abilities the better your planning becomes. This may well be the most practical and easy-to-understand point from this entire list. Setting daily achievable goals directly demonstrates the importance of planning. Set. Achieve. Replicate.
Practical Step Five: Build In A Buffer
The final practical step I want to share with you relating to the importance of planning through practical application involves building in a buffer. Don’t be so incredibly strict in your planning that you fail to plan for the unexpected. Life is unpredictable. Humans are by their very nature prone to fluctuation and last-minute changes. If you plan too meticulously you’ll end up failing miserably.
Building a buffer into your planning allows you to be flexible and still achieve everything you have planned. Since this is practically speaking here’s what that buffer might look like:
- Allow for extra time between your meetings on your calendar. Don’t schedule things so tightly that you have no time for delays in a meeting. Have you ever been in an entire day of meetings without a single delay? I doubt it.
- Plan extra time for your journaling. Some days the words will flow and others will be a struggle. Again, scheduling things too tightly will lead to a higher stress level and a less creative approach.
- Even your daily goals should have a buffer. As you look at your goals for a day and how they relate to your work week, consider how these may shift from day-to-day. Don’t build up a domino chain where a single failure will make your entire week unsuccessful.
As I hope you can see these are five practical ways to demonstrate the importance of planning through your daily routines. Putting these items into practice each day won’t guarantee you success but will absolutely demonstrate the importance of planning. You will quickly see the results from these real-life simple steps. The importance of planning is something you absolutely should not neglect and I look forward to hearing your stories about how these steps help you take a more intentional and planned approach to your work and ultimately your life.
December 2, 2016
Determined or Workaholic
Some people try to label me a workaholic. They seem to think that because I stay up late or get up early to get work done that I must be a workaholic. But there’s a difference. I realize not everyone will see it and you might not agree but let me see if I can persuade you to think about it differently.
The dictionary definition of workaholic is as follows: A person who compulsively works hard and long hours.
This means anyone who is compulsively working long hours or hard hours is by very definition a workaholic. However, let’s dig into that definition a little bit more. The interesting word in that sentence is: compulsive. Compulsive means a result driven by an irresistible urge, especially one that is against one’s conscious wishes. And now I hope you see the real root reason why I would fundamentally disagree with the label of workaholic.
If you’re in a situation where you are working obsessively on something, but loving what you do, you are driven to see its success and you are hyper-focused on seeing your work brought to completion…that is not a workaholic. That’s focused, intentional, and deliberate choices made for a very specific purpose.
In those late hours (or early mornings) when I am diligently striving to create something never before seen I am motivated and driven by a goal and a vision. My “why” statement is the foundational belief upon which I build my work schedule and my calendar. I am consciously and willfully making choices which will enable and empower me to accomplish the goals I have set. This is the exact opposite of compulsion.
Compulsive behavior by its very definition is an irresistible, uncontrollable urge to work, regardless of desire, motivation and purpose. This behavior lacks the fundamental basis of “why”. Therefore, workaholics are not driven by their goals and their desires to accomplish something, they are not driven by an innate inner fundamental belief, instead they are controlled by an external force. Workaholics have lost their basic human right to freedom.
So as I hope you can see, I very strongly object when someone would suggest that I am a workaholic. There is no situation in which I would consider myself a workaholic. Yes, I spend a lot of time creating something incredible. I pour myself into what I do and I am highly motivated to see its success. But it’s a conscious choice. It’s a daily decision I make to wake early, stay late, and change the world. I’m driven by my “why” and my vision. And I hope you are as well.
November 29, 2016
No Shame in Learning
The fear of failure can be a crippling feeling. Whether it’s the struggle with personal pride, the feeling of rejection, or simply the internal disdain for not being successful. Whatever the motivating factor, fear over failing can inhibit your success significantly. I know from personal experience the deeply intimidating feeling of being observed by the world and the intense pressure associated with this feeling of scrutiny. Granted this is often a perceived feeling and lacking substance but the feeling exists none the less.
This feeling tends to force a tendency I hold already – the deep-seated desire for perfection. If I can release perfect software, if I can build a perfect company, if I can create the perfect culture then I won’t fail. But what a ridiculous and impractical goal. Sure it sounds excellent but the reality is that no one is perfect. No plan is perfect. There will be failure.
An advisor once shared with me an important nugget of information that I hold on to now as I create and grow. He said,
“Have no doubt you will fail, you will zig and you will zag along your path as you build this company. Don’t beat yourself up for that. Just keep your eyes focused on the goal and press on. There’s no shame in learning”
Sure it’s not necessarily new advice or revolutionary even; but in the moment it was exactly what I needed to hear. There’s no shame in learning from failures and using them to make yourself better. The key lies in that simple statement. Rather than focusing on failure as a missed opportunity or a flaw in your person or process it is far better to think of those failures as learning moments. And if you learn from them-they weren’t failures at all.
Failure isn’t bad, the fear of failure can be. Ultimately the outlook you have and the way you deal with failure is far more important than the actual misstep. If you learn from the mistakes you make, if you use those failures as ways to improve your product, your business, even yourself, you’ll be better as a result. I’d be so bold as to suggest you’ll be better than if you hadn’t experienced those failures at all. How many great inventions have you heard about which came to be as a direct result of a failure? There are story after story of incredible successes built on the back of a failure. In every instance it’s the ability of the person to learn from their failure which makes all the difference.
So, maybe you’re in a tough spot right now, maybe you’re a bit paralyzed with the idea that you’ll fail in the undertaking you’re in the midst of. If so, I hope the advice I received and have shared with you now will help you to press on, make bold decisions, try new things, and even fail. Just be sure you learn from each failure; and who knows what you’ll do next!
September 3, 2016
August 2, 2016
The Importance of the Last Mile
Everyone talks about going the extra mile. But there’s actually something to consider before thinking about going the extra mile. In fact there’s something directly before the extra mile. And that is the last mile. Even from an early age I had the concept of finishing drilled into my brain.
Many of you who know me may not think of me as necessarily athletic. In fact you would probably assume I was your typical computer nerd with glasses during high school and you are mostly correct. I was a computer nerd and I did wear glasses but I also played sports and enjoyed participating in both soccer and basketball during my high school years. This environment helped me mature in team activities and also in other areas of my thinking as well.
As I mentioned one of those concepts has been permanently impressed on my life and affects nearly every aspect of my daily life. I hinted at it above but let me give you a little more detail about why the concept of finishing sticks with me so thoroughly.
It was a hot summer afternoon and we were running sprints. Back and forth we plodded across the dead remnants of a soccer field, the lush grass long since withered and faded under the blistering unforgiving summer sun. Goal line to the box, back to the goal line, forward to the half, back to the goal line. Repeat. To his credit the coach would run with us, encouraging us, cheering us on, cracking jokes, pushing us. When finally we were allowed to collapse exhausted onto the needle-like surface of the battlefield he would remain standing. We knew he was spent, clearly he had to be, in our youthful eyes he was ancient and yet he stood. He stood because as he would go on to tell us, it’s not whether or not we played the first 80 minutes impeccably, but how we played the final 10; the last 1. Standing rather than collapsing. Finishing the game. But not merely finishing; finishing strong. That was only the first of many lessons on the value of finishing.
Every game would begin with a huddled mass of excited, adrenaline-filled fists jammed into a circle before being thrust heavenward with the battle-cry of “Finish!” More importantly ever content, regardless of victory or defeat, was ended with the same ritual. Some times the cry was painful as loss still echoed in our heads. Other times the anthem rang out embodied with every goal and winning moment of the latest success. But always, “Finish.”
The lesson taught has gone on long past those summer evenings. Gone are the game-day lights and the glory of a sports conquest. But the concept of finishing continues on. Just as my coach had always envisioned, he was doing more than teaching us to play. He was teaching us how to live.
In a world where “going the extra mile” is praised and celebrated and where going above and beyond is rewarded with accolades and commendations, we too often lose the value of finishing. There is tremendous benefit and something to be said for finishing strong. Before worrying about going above and beyond, and before thinking about the next big step you could take, focus on finishing well. Create finished products. Deliver work done excellently. There is extreme value in the last mile.
July 12, 2016
The Speed vs. Quality Debate
I love moving fast. Anyone that has spent any time around me knows that I am always looking for ways to improve efficiency, move quicker, and go faster. But there’s a very dangerous downside to speed. The first thing usually sacrificed when you are seeking speed is the quality of what you’re doing. This leads to a very real challenge which do you focus on and when should you focus on speed instead of quality; or conversely, when should you prioritize quality over moving faster. This is the question I’d like to look at quickly in this post.
Honestly, I entitled the post using the word debate because it’s a discussion, or debate, that I hold frequently with myself. So to help answer the question we’ll look at what speed means and the benefits of speed, then the definition of quality and what the benefits of quality are and lastly we’ll explore if it’s possible to have the best of both worlds.
First, what does speed mean and what are the benefits of moving quick? I have spent some time thinking about this and have ended up with three big benefits for putting a priority on progress.
Faster to Market: Whether you’re the new kid on the block, the youngest business entering an industry, or the established enterprise leader building on a legacy of success there is tremendous advantage to being the first mover. You’ll be the trendsetter and the business by which others measure their success. Being faster to market means you set the stage, the tone, and the expectations for the market. This is definitely a big advantage to being fast.
Innovation Leader: This benefit is very similar to the first but I decided it was unique enough to be its own. Innovation is a funny thing. Sometimes you’re perceived as innovative if you bring a new idea to the market, obviously speed helps you do this. But there are also those times where you’re speed to adapt to a newly identified market also gives you an incredible advantage. You might not be the fastest to the market, but the speed with which you innovate within a fast-growing space still yields big results.
Continuous Improvements: The final benefit attached to speed over quality comes from the ability to quickly iterate and make improvements to the product. Mark Zuckerberg is famous for saying,
“Move fast and break things.”
The underlying emphasis is not necessarily on breaking things but on moving fast and fixing things when they are broken, in other words, continuous improvement. Clearly this state of continually finding, fixing, and improving a product requires moving fast. Speed demonstrates to your customers that you are dedicated to providing the best product as quickly as possible.
Secondly, we need to look at the value and benefits attached to creating quality. Quality takes time, thought, and constant tuning. Here are the three benefits I believe come from putting quality as the highest priority.
Reliability: This benefit almost seems to be in juxtaposition to the Zuckerberg quote we looked at earlier. In this situation breaking things is bad. When you focus on delivering a top-shelf quality experience you have the added benefit of supporting a reliable product. Reliability is an inherent benefit of doing things “right”. Your product is considered a quality product when it’s reliable and works as expected.
Polished: As with the benefits of speed above there are a couple of quality benefits which appear at first glance to be overlapping, but I would suggest that the concept of a polished product is unique enough to be a separate benefit. A polished product means the user experience in the moment is exceptional. Whereas reliability is the ongoing successful benefit of quality, polished is the instantaneous benefit of quality.
Impressive: The final benefit I’ll mention for quality is that when something is just done right from start to finish the feeling left with the customer is an impressive one. Want to impress your audience? Deliver a quality product. Think for a minute what draws you to a particular product. If you hear about something from a friend, and they are struck with the high quality delivered you’ll be interested in checking it out for yourself. The impressiveness of a quality product encourages viral sharing.
I realize I’ve structured this post as an either or solution between speed or quality. In reality, the best situation is a careful intentional balancing between the two. This might appear hard and at times you’ll certainly have to select one over the other but the vast majority of time you can put in a little thought and effort and balance these two forces and achieve the greatest benefits of both. Here’s how that might look.
Speed with Quality: When you’re attacking a new market or entering a new space the benefits of speed provide you the greatest value. But you can (and should) still put thought into delivering a quality experience. You may not be as reliable but you can certainly be impressive. Remember being impressive means a focus on the overall user journey. You may have stumbles at points in the process but the overarching experience is positive. You can absolutely focus on this while delivering quickly.
Quality with Speed: Once you’ve established yourself in an industry and you have maybe become a bit more senior in the space you will be focused more heavily on quality. You want to make sure the product is polished, the overall experience optimized, and ultimately the product highly reliable. But again, this is a balancing act and you can still introduce speed into this environment. You can move fast. You can continue to innovate. In fact, your position as the incumbent gives you a unique opportunity to provide new features and push boundaries faster than others.
Ultimately, as with everything in life. Moderation and balance is the key. Too much of anything is a bad thing and once you’ve been able to identify the proper blend of quality and speed instead of quality or speed you will find the greatest success. And just like a seesaw, this is a process which must be constantly evaluated and adjusted. A mix that worked for you at one point in your company history might not be the most successful at a later stage. The goal is therefore to be intentional in balancing speed and quality and find the best mixture at every stage in your business.
June 30, 2016
First Follower FTW
Recently a humorous in-office chat unfolded on our #cooler Slack channel. It began simply enough. I posted a random photo that I found to be funny due to an optical illusion.
This lead to one of our team posting this humorous reply.
What happened next caused me to remember a post I had meant to write but forgotten about. This is the message which pushed me to write this post.
It seems rather innocuous and unimportant even, but the opposite was in fact true. This was the first follower. Why you might ask? Because this post lead to this.
The leader was the first poster, they had an idea and they shared it. But the first follower, the second poster, they started the movement. They supported the idea and turned it into something more. That’s a very practical example now let’s look at this concept of first follower in a bit more detail.
What is first follower
The first follower is a phenomenon I learned of first from a TED talk by Derek Sivers. In this talk he discussed a popular viral video which you can watch here if you feel so inclined. Here is the bottom line if you prefer a tl;dr version.
The first follower is the hidden leader of a movement. They support the vocal initial person who began doing something different. The first follower lends credibility, support, and raises awareness. The first follower takes the focus off the person and places the focus on an idea. This is the moment when a movement behinds. Let me rephrase that another way.
“A movement begins when the focus shifts from a person to an idea.”
Why be a first follower
Clearly there is an immense amount of power held by the first follower. This person is the true hidden driver behind revolutionary change. Their input might not always visible or even publicly recognized but the power exists. The first follower recognizes they have the ability to support and promote the idea creator. Being the first follower requires bravery. At this point the idea is new, young, and unaccepted. The general audience has not yet accepted the idea being promoted and the creator is a lone voice proclaiming their message. The first follower therefore holds an immense amount of risk in accepting this idea and following the promoter. But the power, the responsibility, the opportunity to make an idea a movement lies in the hands of the first follower.
When to be a first follower
Because of the amount of risk associated with being the first follower there should be some guidelines followed before blindly becoming a first follower. Here are a few general questions to consider before assuming the role of a first follower to an idea.
Do you agree with the idea?
Sounds basic right? But before you follow someone or something you have to determine that you fundamentally agree with what’s being shared. The world today is so connected and accessible that anyone can share any random idea or thought. This does not mean every idea is worthwhile or worthy of becoming a movement. Critical thinking is required.
Do you feel passionately about the idea?
It’s not enough to simply agree with an idea you need to feel passionate about it. Is this truly something you believe in. Keep in mind is the turning point for the idea and its creator. This holds the potential to turn an idea into a movement. You should feel passionately and willing to truly support and back the idea.
Are you prepared to support the idea?
This question should be an easy one to answer if you have asked the first two questions but it’s still important to ask yourself if are ready. Supporting an idea in its infancy may result in rejection from others who don’t follow with you. Even more difficult is the acknowledgment and acceptance you may even be ridiculed for your belief and support of the idea.
If you answer these three questions and you’re ready to move forward then keep reading.
How to be a first follower
There are many way you can demonstrate your support and approval of an idea some are easy and some require more work. Typically the more difficult the way to demonstrate your following the greater results you’ll experience.
Be a silent supporter.
This may seem like passive support but in the early days of an idea (before reaching the critical mass) even the silent support is important to the eventual success of the movement. Silent support might be as simple as a “like”, or maybe a public acknowledgement of someone else’s verbal comment.
Be a vocal supporter.
The next level of first follower involves vocally supporting the idea. Again slightly more risk involved as you are publicly sharing your agreement with the idea. This might mean resharing, retweeting, or verbally affirming what someone else says or does.
Be a secondary creator.
This is the most difficult level of first following. At this point you we no longer merely supporting silently or vocally but you are creating and sharing additional supporting ideas. You are taking your support of someone else’s idea and you are owning the idea at this point. This is opens you up to your own level of ridicule as you are now becoming a bit of a public leader yourself. This is creating variants of the idea and sharing them all with the purpose of growing the support for the original idea.
The bottom line is simple: be a first follower. Start a movement. Don’t feel like you must create an idea to be successful. Instead as this post and the supporting documentation and research shows – you can be the true force that makes an idea into a movement. Find those ideas you believe in, passionately believe in, and support them, advocate for them, and build on them. Follow them.
June 6, 2016
The Greatest at Personal Branding
On Saturday I woke up to the news that Muhammad Ali, arguably one of the most well-known sports figures of all time had passed away. My first reaction was a bit of surprise as I had been fairly unaware of his detiriorating condition. My next thoughts went instantly to the highlight reel in my head of the best moments, quotes, and interviews with the legendary loudmouth. As I Googled my way through the classics a new thought began to enter my marketing mind…
I was front-row firsthand witnessing a master of personal branding. As I reflected on this fact I tried to put my finger on a few of the reasons why I found myself admiring this master marketer. Here are the five big takeaways that I believe make Ali “the greatest” even in the world of personal branding.
Ali was bold
No one would ever accuse Ali of not speaking his mind. One interview would quickly prove that Ali was bold in his approach. He spoke frequently about his abilities and his talents. But not just bold in words. Muhammed was bold in other areas of his life as well. He stood by what he believed whether that was related to religion, politics, or boxing. After beginning life as Cassius Clay he boldly changed his name in response to his conversion to Islam. When the United States attempted to force Cassius to join the military during the war he boldly stood up for his beliefs, not to be defiant, but to be resolute and true to his own beliefs.
Ali was creative
As I stated in the beginning one of the first things that came to my mind when I thought back on the life of Muhammad Ali was his colorful and creative use of language and even poetry. I’m sure almost everyone knows at least one famous quote which began “float like a butterfly, sting like a bee.” (Can you finish the couplet?) Ali never failed to flash a great big smile before dropping some creative rhymed taunt aimed at his opponents. He used this creative talent to make his name and his brand memorable and enduring for generations.
“I wrestled with an alligator, I tussled with a whale, I handcuffed lightning, thrown thunder in jail, I’m bad man….Last week I murdered a rock, injured a stone, hospitalized a brick. I’m so mean I make medicine sick.”
Ali was not afraid of offending
Secondly, Muhammad was clearly unafraid of what others thought or what their reactions might be to his life and his vocal outspokenness. This was not because he didn’t care, but more that he was so completely compelled to be himself and share those beliefs he was not deterred by the response he might receive. If someone was offended by him, well that was their right and freedom to be so. But that potential offense would not keep him from broadcasting his beliefs and speaking his opinion. The key thing to remember is what motivated him. He was driven incessantly by his beliefs and convictions. He didn’t offend just to offend someone, but he wasn’t afraid of offending when it contradicted his passionately held personal beliefs.
Ali owned up to defeat
While it might not have happened often there were a few times that Muhammad lost the fight. These were very telling moments for Ali. Rather than faking it or falsifying the truth the world renown fighter owned up to the defeat. He may not have humbly rolled over and claimed complete failure; but he did give credit to the victor. There’s plenty of evidence to this fact, one of the most memorable for me is an interview before his infamous “Rumble in the Jungle” fight. Ali praises a litany of his competitors for their victories in previous fights. It takes a big person to humbly accept praise in victory, it takes an even greater individual to be gracious in defeat.
Ali wrote his story
The last point I dwell on is perhaps the most important and also the most poignant. Ali was his own biggest promoter. He constantly referred to his skills, his abilities, his talent. He never sat back and let others describe his character or his performances. If Ali was in the room while someone was sharing something about him, Ali would immediately speak up (usually louder) to share his own opinion and view of himself. One of the most entertaining things to watch is any instance when Ali begins to pontificate on his own abilities and his greatness. And here’s where I think we learn a valuable lesson from Muhammad Ali. He branded himself as “The Greatest” – this was a self-claimed title. And yet, within hours of his passing, the branding he had worked on building his entire life, the story he had spent every interview instilling in his audience was fixed and established forever. “The Greatest” had died.
This is the ultimate in personal branding. Ali provides us with an excellent example on how to brand ourselves. We must be bold to share what we believe. We must be creative in how we share those beliefs. We must not be afraid to stand up for what we believe in (even when that boldness is potentially considered offensive by some). We must be gracious when acknowledging the successes of our competitors And finally, we must never give up writing our own story. Tell the world what you want them to know about you. Craft your own successful image. Be relentless in the pursuit of your goals and be intentional in sharing your story with others.
The world has lost one of the greatest sports figures of all time. Perhaps even the greatest. But the lessons we can learn from this persuasive, powerful master of their brand will continue on forever.
June 5, 2016
May 24, 2016
Truth, Trust, and Transactions
False transparency is damaging to relationships. When an untruth is shared under the guise of being “open” and “honest” but the listener is clearly aware of contradictory information the relationship is damaged. In a world where openness is valued and transparency is respected the Internet has revolutionized these concepts. Here’s why:
In the old days it was much easier to “fool” people. It was much easier to share half-truths and slight exaggerations when the audience was unable to verify the truth of the information shared. Think about this for a minute. With companies like Google whose mission is to categorize and make all the world’s information accessible; information has never been more available. Have a question? The Internet has the answer. And here’s an important point. Not just one answer. Not just one viewpoint. The Internet has dozens, hundreds, thousands of answers and views. With the rise of the connected computer network humans have the ability to find and connect with like-minded individuals around the world. Stuck in a difficult situation? Have a perplexing question? Find solutions, recommendations, and advice from a host of others who have experienced similar situations (or identical ones).
Google’s mission is to organize the world’s information and make it universally accessible and useful.
What does this have to do with openness and transparency?
Simply put, companies, individuals, organizations must be vigilant and committed to being truthful. Either commit to being open or don’t. There is no place for a false transparency. Interested in launching a new ad campaign touting a specific feature or benefit which performs unlike anything else? Be sure your claims are true. Attempting to convince others of radical transparency? Your data better not be manipulated. Your statistics should be valid and backed up by others. Otherwise, it’s your audience that will feel manipulated and tricked. They will see through your attempt at openness and will interpret your communication as demeaning. It’s insulting to feel lied to by someone. Nobody likes feeling tricked or treated as stupid.
Why is this important?
Because every company wants to be known as open. Every company wants to be known as trustworthy and transparent. However wanting to be known for something and committing to the day-to-day requirements to accomplish that are two very different things. You have two choices – commit to the goal and resolve to follow through regardless of the consequences, or don’t market yourself as if you are. But that’s not the main reason way this is important. Companies want to be known as open and trustworthy so they can build relationships with their customers. Everyone knows the adage that relationships are built on trust. Relationships built on trust result in advice being followed, purchases being made, and deals being brokered. When people trust someone they value their opinion and listen to their suggestions.
Clearly relationships are important and trust is the foundation. Thus, when a situation arises and trust is lost the relationship suffers. Future conversations are filtered or scrutinized more. Advice is not readily accepted. All interactions are evaluated, judged, and validated through others. This is not the type of relationship that yields long term value (for either). That’s right, the value is not just for the company. There is also an intrinsic value to the person as well. They can find better products, improve their lives, and simplify otherwise difficult decisions. The transactions are not just for the company. Transactions involve multiple people and multiple interests. The right relationship between a brand and a customer is valuable to both of them.
What is the response?
Be open, be honest, be transparent; ultimately be truthful. Even if the truth hurts, or if the outcome is not what you think your audience wants to hear – be committed to telling the truth. This is what being open truly means. This is what will help to establish a foundation of trust and begin laying the basis for a long, healthy relationship.
May 6, 2016
Know Your Limits
Most people recognize that as they get older they start to slow down; or at least their bodies start to slow down. There’s less they can do and there are more things slowly seizing up. Recently I had a friend jokingly comment that they were ok with the minor aches and pains, and the crick in their neck was not that big a deal because as they said, “Hey, I’m 53 now and things are starting to break down.”
As they get older people start to understand their bodies better as well as getting smarter about what they do. In short, they know their limits. Maybe it’s not staying up as late, not eating everything they want, or not jumping into that pickup basketball game like they used to. As a result of this self-imposed limiting they are able to do more and do it better. This seems counterintuitive. Self-limiting should mean less gets done and more experiences are lost right? In reality, once they start restricting themselves and understanding their own limits they can push themselves within those boundaries and experience life more fully. I find this truth to be insightful for many other aspects of life as well, both personally and professionally.
Let me share what I mean. I titled the post Know Your Limits. I tossed around several different ideas but finally settled on this. Originally I wanted to express the idea of self-awareness and how knowing what you were good at would equate to being capable of doing things excellently. Ultimately being excellent, being known for doing excellently is important to our feelings of self-worth and personal value. We want others to recognize our talents and skills. We want to feel as though we’re accomplishing something worthwhile and in our hearts we want to feel that we are providing value to those around us. This lead me down the path thinking about what helps us accomplish those feelings.
I began to think about the next logical level from the end result of doing something with excellence. How do we do something excellent? Well we have to be able to do it “right”. There’s usually two ways of doing something ‘right’ – either through training or natural ability. However, even those natural abilities and talents need to be cultivated and refined. This requires work and time spent improving, tweaking, adjusting our practice until the end result is clean, polished, and excellent.
Next in the progression involves looking at how many different things we’re working on. Why is this important? I’m glad you asked. As I just shared, every talent or ability requires work and time. Time. I’ve talked about it frequently on my blog in the past because of the critical role it plays in everything we do and every journey we undertake. And here again we see time becoming an integral factor in our path to excellence. If we recognize that time is the only asset we can’t beg, borrow, steal, store, or create more of then we need to think about all those way we are consuming it. This means we have to consider how many different things we’re working on and the time required to be excellent. I’m sure everyone’s familiar with the commonly shared almost anecdotal 10,000 hours rule. If not, a quick Google search will reveal a number of helpful posts on the subject. I’m not going to question the legitimacy of the post, or the specifics of the claim. But it provides a good basis to help shape our thinking.
10,000 hours. If we look at the average life expectancy we find there are approximately 689,412 hours in life. We then find that we spend about 90,228 hours working in a typical life. If we ignore the fact that there are probably a dozen other demands on our time even at this somewhat unrealistic view of our time we still only have approximately 9 things we can truly master in a lifetime. (90,228/10,000 hours). Wow. That is not a lot. And yet, how many of us, myself included are trying to be excellent at dozens (if not more) of different things? We believe we can beat the system and be excellent at everything we do. Some of this is natural human optimism. But if we can recognize this temptation to be overly optimistic and idealistic then we can begin to cultivate and refine our talents in a more achievable way.
And so we return to the title of this post and the goal we want to accomplish. In order to be excellent, in order to do things right, in order to be successful we have to recognize and build the right foundation. We have to know our limits.
It’s incredibly hard to be this self-aware. In business it’s incredibly hard to stay focused on those few areas where you can truly be excellent. As you get closer to achieving excellence others will begin to recognize your differences and your ability to rise above. When they do they’ll begin to use and promote you and your brand…and they’ll want you to solve all their problems. This is the trap many fall into. Those problems will start to creep outside those areas you have focused on and become excellent in performing. If you know your limits and the limits of your business you’ll be prepared to answer these requests the right way. Of course there are ways your business will continue to grow and adapt and become better but prepare your customers by making them aware of what they are requesting and your current abilities in those areas. Share your limits. Don’t be afraid to grow but also don’t be afraid to share your current strengths and weaknesses. Your customer’s will respect and appreciate that even in this you are doing things excellently.
Let me know if as you have read this post you’ve thought of other ways knowing your limits is beneficial to your success. I think the concept of time management, efficiency, and self-awareness are all critical elements for ultimately being excellent. Are there important elements? Are there other benefits to being self-aware and knowing your own limits? I look forward to seeing what you think.
April 28, 2016
A Pyramid Scheme for Startups
Most startups traditionally all want to approach the market in a similar way. Scratching an itch. Starting with a great idea. Focusing on fixing a problem that the entrepreneur has personally experienced or seen. This is common. And certainly nothing wrong with this way for getting started. Ultimately you have to feel passionately about the problem you’re trying to solve; the pain you want to alleviate.
If you didn’t have this deep-seated desire there’s no need joy in the task you’re undertaking. But too many times (I’m learning this too as I talk with others) this is the sole foundation and focus of the business. When this personal perspective is the only focus of the startup there will be a struggle. So how does a startup grow beyond this phase? What’s the better approach to take for a successful business?
As I learned from a good friend there is a simple diagram which can be immensely helpful in creating this structure. I call it a pyramid scheme for startups. Only this pyramid scheme is highly beneficial and immensely helpful. And totally legal.
I’ll start by giving you the picture and then digging into it a bit to better explain each level and what it looks like from a couple different perspectives.
How the marketing uses the pyramid
First, we want to look at this pyramid scheme from the position of the marketer. The marketer needs to create the branding and marketing message for the organization. They have to start with the core and work out. In this role they need to take this pyramid, start at the top, and work their way outwards (or down).
A good marketer recognizes they must begin by identifying what the company is (What we are). Once they have a good handle on the “why” for the business; they align with the company goals and objectives; and then they shift their focus to be slightly more broad and begin to create the marketing message. This marketing message should point people to what the business does and funnel traffic “upstream” into the what and why statement.
We’re Different. Here’s How.
Continuing downward the marketer then begins to build on this marketing message into some of the specific ways in which the business is different from the competition. This is the differentiating aspect of the marketing message. Again, this stage is broader still in the overall marketing context and begins to include other sources, the general market space, and a broader reach.
The broadest and most generic marketing message is the bottom of the pyramid. The last part a marketer builds out and focuses on revolves around the practical application of the business/product to an audience. How the customer would use the product.
An interesting point you’ll notice as the marketer builds this pyramid from highly specific (company-focused) to very broad (audience-focused) there begins to form a number of different “channels” or as more commonly known “verticals”. This can be easily shown in the pyramid with the following minor addition.
What you’ll see is with the addition of these vertical markets the marketer continues to funnel everything upwards into a single core message and becoming more company-centric and refined.
It’s a brilliant way of thinking about the marketing message. I think it represents similar concepts to what you’ll find if you look at Simon Sinek’s presentation on Start with Why. Which incidentally is also one of my personal biggest influences. I’ve written on that topic time and again. But this is only one part of the equation.
How sales uses the pyramid
We can take this same pyramid structure and look at it through the eyes of the salesperson. If we start from a sales standpoint we have to approach the situation from the opposite direction
The reason for this is simple but let’s walk through it anyways as an exercise. First, when you’re approaching a business from a sales perspective you have to start from a common point. The best salesperson recognizes that instead of yelling about what makes the business great the best way to begin involves listening. A salesperson that listens first to a customer, understands and helps identify pain points is going to have a much easier job providing a solution that solves specific problems.
You have to listen first.
This approach of listening and identifying pain points means simply identifying how the business/product would be most effectively used by the customer (aka the bottom of the pyramid). This is a critical step. This lays the foundation for the relationship and helps the salesperson reach the broadest possible audience. Keep in mind the verticals we discussed previously. Listening to the pain points and identifying use-cases means targeting a specific vertical path from the bottom of the pyramid.
Secondly, once the customer recognizes and relates to the pain points and how they would use the solution the salesperson can continue to refine the sales message to begin to highlight key differences between the product and the competition. This is still the differentiating step, but specifically as it relates to the pain points previously identified.
Relate to your customers
The third step is the relational step. At this level in the pyramid the salesperson takes the differentiating factors and leverages those along with the pain points to relate to the customer. Here the interests of the customer need to be aligned with the solutions provided by the company. This is the “caring” level where the customer begins to see in a semi-focused manner why this particular company will uniquely be able to help them.
Finally, the last step in the sales process is where the company can share a bit more of their personal message, culture, and experience. This is where the company can open up a bit. Note, that you don’t want this to occur too early in the relationship but rather be saved until the connection has been made and the basis for a relationship formed.
I hope you find this helpful to think about as you work within your company (really any stage company can probably benefit from this). Keep these principles in mind as you build your marketing strategy and your sales strategy. Focus your time and efforts where they matter most. Of course this isn’t a perfect picture and there are ways this could be improved upon both generally and also in specific company use cases.
As I’m learning and thinking on these things I’d love to hear your thoughts and opinions. Have you found a particular pyramid or other diagram that helps identify and organize your thoughts around preparing a marketing message (sales traffic) besides the funnel. Because, yes, I’ve seen enough funnels to last a lifetime.
March 29, 2016
The Importance of User Interface
One of the topics you’ll frequently see me write about (or speak on) relates to user interface and the user experience. I am passionate about providing the user with an experience that is both pleasing and easy to use. As a result I find that I am constantly looking at and analyzing the software and the interfaces of others. I find some that I think work amazingly well and I take note of what they do right. Unfortunately the majority of the interfaces I interact with I find do things poorly and in some cases absolutely horrendously.
What is it about gas stations?
The latest interface fiasco which forces me to write this particular article is captured in the screenshot below.
For the careful observer you’ll probably notice this is not the first time I have shared an image from a filling station or gas station. In fact, the previous time I pointed out something from the gas pump it also related to the user interface. If you don’t remember that image I’ve included it below as a refresher.
It’s hard to know where to start but I suppose I’ll begin with the first graphic since it’s the most recent one I have come across. There’s one major and very glaring problem with the simple four step process they’ve outlined on this card. If you guessed step number one then give yourself a gold star, you are right!
Yes, Yes, Yes
A good user experience should never begin with the first step requiring the user to cancel something. This starts the interaction off wrong from the very beginning. You want to instill positivity and encourage them, not start off with a negative. In fact, this is a rather well-known fact and a common practice in sales/marketing worlds. One of the earliest encounters I had with this principle came from a timeless book, How to Win Friends and Influence People, by Dale Carnegie. If you’ve never read this book I encourage you to do so. As you work through the principles you’ll come upon Principle #14:
“Get the other person saying ‘yes, yes’ immediately.”
Now, if we understand and agree with this principle then the idea behind this 4-step process beginning with a negative, “1. Press Cancel” is inherently wrong and a bad user experience. How do we make this experience better? Well, in this case simply changing the first step to “1. Press Go” or any other positive action word will resolve this conflict with the user experience. Maybe even drop the first step all together and move to a simple 3-step process!
One way to say yes
We started with the easy one, let’s now press on to the next image and a seemingly more difficult interface to fix. While at first glance this image and the user experience seems daunting and possibly unfixable the truth is that the solution is a simple one. One of the things I spend considerable time on is finding the best way, the most efficient way to accomplish a goal. I spend time finding ways to help others save time. I think good user interfaces should be efficient. And one of the best ways to be efficient I have found is by following another key principle. Keep it simple, otherwise known as the KISS principle.
“Keep it simple, stupid”
This is not a new concept and certainly not something specific to computers and software interfaces. But it can certainly be applied to these areas. Here is how you can apply the KISS principle to the user experience. Don’t make them click three buttons when one will do. Don’t give them 4 options to accomplish the same goal. Take the time to think through the interface and consolidate options. Give the user one way to say yes.
I know you may be thinking I am over-thinking and over-analyzing something as simple as the way I pump gas, or how I interact with the rewards program at a gas station, but this is how I see the world. I believe we can make even the everyday experiences better and more enjoyable. Because every interface has the opportunity to improve a relationship, or harm one. The details matter. Every detail matters. Be thoughtful about how to do things better, how to interact better. Make it simple. Make it efficient. Make it excellent.
February 23, 2016
Global Marketing Automation
When we talk about global marketing automation and the need for a product which can meet the diverse needs of a world market one of the first priorities becomes languages. I’ve written about this before but recent news has made this a good time to revisit the topic. More often than not people tend to forget that there are other languages spoken in the world. It’s just human nature to become comfortable and focus on your local environment. This is especially noticeable in the Western world (aka the United States). But this is close-minded and a narrow focus on the task to accomplish.
Marketing automation has traditionally been one of the largest offenders of this narrow view of the world. Case in point: some of the most well-known existing marketing software companies are proud (and actually brag) on the fact they provide their software in 5 languages. Five.
Mautic is an open source marketing automation platform where the focus from the very first day has been on a global environment and the vision for a product available to everyone in every language. This community-first approach has lead to some incredible milestones being reached at insane speeds. How incredible? Let’s look at some numbers.
More than 253 collaborators have joined the Mautic translations team. Together these engaged volunteers have actively been translating Mautic into 24 languages. With more than 47 languages started. That’s amazing! (24 languages is 500% more translated than the other marketing platforms.) And the Mautic community has accomplished this in under 10 months. That’s not a typo; in less than a year this community has come together and built a robust platform available in a way unlike anything before. Local and familiar.
But this is not the end of the story. Even Mautic has a long way to go. Our community has some great momentum but this is not the time to sit back and relax. Because this is the bigger picture:
“There are roughly 6,500 spoken languages in the world today.” (Source)
And so, even though Mautic dominates the marketing landscape there are still thousands of languages yet to go. And as we have done so far we will continue to do, pressing on, empowering people around the world to use cutting edge marketing software in their native language. Because that’s what open source and community means. This is the power of our community and this is the power of Mautic.
February 12, 2016
A Better RedHat Model to Replicate Today
If you look at what made RedHat successful you will find a unique story. Unique in a variety of ways. First, the marketplace was dominated with closed source box software and lacked any open source freely available products. The dominant players sold licenses of a single software version. Secondly, the notion of free software but paid support was practically unheard of. Again, the dominant players would offer a paid product with free support. RedHat offered a reverse on this model. Many people are aware of this part of the story. Many understand the implications of free software and paid support and how enticing this proposition was. It is easy to see how this caused the global market to shift. Free software regardless of the support is a powerful motivator for someone to begin using a product.
But this is where the majority of people think the RedHat business model ends. This is the point at which many new companies attempt to mimic the supposed “RedHat Model”. And this is the fallacy. Because this is not the complete RedHat model. Look deeper and you find a much more detailed strategy which helped to make RedHat successful. Even still what follows may not be a complete picture but should provide at least a slightly more detailed view of the story.
Though the “free software and paid support” model does play a role in the overall strategy there are many more levels of opportunity present. This is the key to a modern day RedHat model. These often overlooked additional features are how a current open source model can replicate the success found in RedHat. Here’s a better look at the RedHat model.
RedHat offers a freely available product; an amazingly good codebase available for anyone to download. Then, in addition to offering support for this product RedHat provides a wide range of additional services offered as add-ons to effectively make things easier for businesses. Note what this does not mean. This does not yield a sub-standard or crippled free open source code. The free source code is every bit as powerful and is the basis on which RedHat builds everything else. Rather than maintaining a separate and “better” product RedHat takes away the pain of compiling and building the finished product. Then they offer support for this product (everyone sticks on this part)…and they offer additional services focused on specific market segments.
This is a brilliant strategy for a number of reasons. This approach still supports and encourages open source completely. This provides anyone and everyone regardless of the size of their business or their revenue the opportunity to use incredibly powerful software. This allows a global community the opportunity to find and improve the software and to implement improvements that meets the goals and needs of the majority. This strategy empowers people. And this strategy also allows a successful business to be built around this product. But this is just the beginning. Structuring things in this way paves the way for other businesses to find success and also be built on this same amazing source code.
RedHat is more than a support company. RedHat is an open source company that empowers people regardless of size. They have turned an industry on its head and revolutionized the way software could be released for free and still be profitable. This strategy, this complete strategy, can be replicated. This is how you can be successful today replicating the RedHat model. Look at the bigger picture. Don’t neglect the community. Don’t cripple the core open source code. Build supporting services to meet specific needs. Empower people.
February 9, 2016
It Only Takes One
I love talking to people and listening to them as they share their story with me. I find it fascinating to hear about what they do, what they work on, how they live, and what they love. There’s always one thing I notice when I have these conversations. When you ask someone what they do you will most often get some story about how they make money. Inevitably the question of what someone does is intrinsically tied to their bank balance. But if that’s the case then you’re asking the wrong question.
I’ve seen many posts before suggesting alternatives to the question about what someone does which will give you a better answer or a more enlightening response. I love those suggestions because that’s when something different happens. That’s the moment I notice something different.
Ask a better question, get a better answer.
Ask someone what they love, or ask someone what a perfect day might look like to them (and feel free to specify that it does not need to even be related to work) and watch the reaction and response you get. You’ll immediately see what I’m referring to. They don’t rattle off some answer related to how they pay their mortgage. No, instead you’ll see a passion ignite in their eyes, you’ll hear a lift in their voice, maybe even a smile will slowly emerge across their face. This is golden. This is why I love to listen to people share their story. I enjoy hearing what people are passionate about. I especially enjoy watching them get excited and feeling that excitement start to resonate in my own spirit. Because in this moment, in that flicker of a spark, you connect with someone on a deeper level.
Their passion, their excitement, their eagerness to share with you something they deeply care about and love is contagious. When you’re passionate about something and you share it with someone else you have the opportunity to go much further than answering the “what” question, you answer the “why” question. Did you catch that? Your motivation and energy to accomplish something which answers your “why” can resonate with others.
Imagine this with me now. What happens if you were to spend time each day sharing your passion, and your driving force with others. This contagious spark spreads. Your passion leaps from person to person, motivating, inspiring, and engaging. Those individuals in turn will share that passion and that experience with another, and another, and another. Suddenly what started as your vision, and your passion, a single solitary flame burning inside you is now a raging inferno spreading farther and faster than you ever imagined. Now you’re no longer alone, now you are a group of individuals brought together by a common goal, a common purpose and a common passion…wait, does that last sentence sound familiar? It should. I used a similar sentence once before in a previous post, only this time I’ve left off the first three words. Here is my previous sentence:
“Every successful community must be centered around a common belief, a common passion.”
You see, that same passion which excites you, and ultimately those around you; that same driving force which answers your “why” and that of others ultimately provides you with the basis of a community. And as that fire spreads your community grows.
People often ask why Mautic is such a successful community. They wonder at how we’ve grown so incredibly fast in such a short time. The answer is easy. In fact, the answer is so easy at times people struggle to believe its true. But it is. The Mauticians which make up our community have a common belief and a common passion. We rally around our goal and the answer to our “why” and we spread like a wildfire. If you still don’t believe this, talk to a Mautician, find someone who knows and loves Mautic and ask them about it. Watch the light in their eyes, the smile on their lips, and hear the excitement in their voice as they tell you how we’re revolutionizing the world, disrupting an industry, and empowering everyone. And then afterwards, well then I imagine I’ll see you very soon in the Mautic community.
Find someone who knows and loves Mautic and ask them about it. Watch the light in their eyes, the smile on their lips, and hear the excitement in their voice as they tell you how we’re revolutionizing the world, disrupting an industry, and empowering everyone.
January 12, 2016
Free Software and Success
Marketing automation is highly complex. A free app gives the wrong signal as if everyone with MA can be successful.
I recently saw this tweet and it annoyed me. The foundational belief that if something is free it cannot therefore be of real value is completely and totally false. Availability has never implied success. Cost does not unequivocally equal value. Granted there are many areas of life and the world where a brand may charge a premium for a similar product. You may find yourself paying for a logo, or a particular “name brand” recognition, but this hardly means the higher the price the greater the value.
The reverse is even more fallacious. The more affordable (or even free) price does not automatically relate to the quality of the product, the value of the software, or even the ability of this software to be helpful in future success.
A free app means the availability of the raw goods, the resources, are available without cost. The impetus still lies within the business to correctly implement the software to be successful. Let’s take a different perspective.
Imagine you find a stunning piece of software, it’s beautiful, it’s highly functional, it does absolutely amazing things. But you can’t find the price anywhere. You’re convinced this software is just what you need so you agree to begin using it regardless of the price. Now, you have two possible outcomes, you either fail to successfully implement the software and it sits there, beautiful, shiny, untouched. Or, the second option, you take this software run with it, implement it, and it makes your business incredibly successful. You’ll notice one thing that’s not revealed. The cost. Through this example what we discover is that the price of the software plays absolutely no role in the eventual outcome.
The price of software tools used should never be thought of as an indicator of the business’s eventually success.
Now, marketing automation has traditionally be considered complex, detailed, and difficult to use. But the status quo exists to be broken. Disruptive organizations, like Mautic, demonstrate this fact. Mautic revolutionizes the marketing automation industry with convenient, easy-to-use, intuitive marketing software. Mautic empowers everyone, and gives each the tools they need to be successful. Mautic gives the raw product. Mautic supplies the things necessary to be a success; but does not guarantee it. And an interesting fact, as we look at Mautic and what it has the capabilities to do, we haven’t once discussed price.
This leads to two obvious and glaring contradictions to the initial suggestion. First, marketing automation is no longer complex and difficult to setup or use. Second, Mautic doesn’t make you successful any more than having the various parts to a bicycle means you can ride one. Regardless of price, software is a tool to be used to accomplish a goal. You can read more about this theory in a recent marketing automation tool article on Mautic.org.
Bottom line: Don’t reject something new based on preconceived possibly erroneous notions.
December 28, 2015
What’s Your Name
I’ll never forget the lesson I learned from a rather famous book entitled, How to Win Friends and Influence People. Granted, this book is almost a rite of passage for some industries and now sits among others on the shelf of great books. There are many lessons you can learn and practical tips you can take away from this author’s suggestions and advice. One of them which I doubt I will ever fully master (though I continue to try) is the importance of remembering a person’s name. One of the quotes from the book perfectly encapsulates this idea:
“Remember that a person’s name is, to that person, the sweetest and most important sound in any language.”
If this is the sweetest and most important sound than what a tremendous opportunity to demonstrate that you also find them important. Simply remember their name. There are of course numerous ways to attempt to do this. I’m sure you’ve experienced the sad, and awkward occurrence when someone tries to remember your name by repeating it at you over and over through the course of a one minute conversation. Clearly this is somewhat embarrassing and a bit annoying. They’re attempting to use a technique which has been around forever. Remember this?
“Repetition aids learning. Repetition aids learning. Repetition aids learning.”
This advice, though accurate, can be detrimental to the relationship if used inappropriately or done too obtrusively. Therefore, remember the importance of learning someone’s name but also the importance of doing it the right way.
A person’s name is special. Even though there may be millions of Davids, or Steves in the universe to each individual that name is special and unique. If there is one way to improve your relationship with someone then prove that they are important to you by remembering something special to them: their name. It’s almost an offhand conversation starter. What do you do when you meet someone for the first time? You ask their name. You’re probably not even listening to the answer because you have already moved on to the next question in your mind or the next thought you want to share. But this is a mistake if you want to build a relationship (and all those times when you don’t know if you want to build a relationship). Because you don’t always know where a road will lead.
Asking someone their name therefore is your first chance to build the right foundation for a relationship. Don’t take the opportunity lightly and don’t let the moment pass you by. Ask with care, ask with purpose, ask and then…listen. Your first question is also your best chance to start right. Take a moment the next time you ask: What’s your name?
November 30, 2015
The Importance of Marketing Tech
Recently I answered a question on Quora about the efficacy and “rule of thumb” for the benefits of marketing technology and how this tech should increase revenues. I thought it was a great question and followed a train of thought I have recently been pursuing so I added my answer to the page.
I believe you will be hard-pressed to find any definitive metrics for how efficacious marketing technology is for a business. The reason for this is in part related to a previous blog post I wrote on Mautic.org. The short version, summary, of that post in essence says that marketing automation platforms and other marketing technologies should always be considered tools to be used and not solutions. Here is what I mean and how it relates to this question. Let me use an analogy to make it easier to understand.
I’m very interested in bass guitars. I love the idea of laying the foundation of a musical rhythm the rest of the band then builds upon to create beautiful music. Bass guitars come in a variety of sizes, shapes, and styles. Each has their own beauty and their own purpose. They are powerful tools that, when placed in the right hands, can be used to impress and stun the audience. But, if I were to give a bass guitar to my son (awesome kindergarten kid) the result would be vastly different. Obviously you naturally and instinctively understand this difference. The guitar didn’t change-the player did. And the results are completely different.
The analogy should be fairly self-explanatory. Those same principles apply to marketing tech. These are tools to be used and with the right marketing department they can impress and stun the C-Suite and others. Inexperienced or new marketers will find the benefits far fewer and their path much different.
Once we’ve established this baseline understanding there are numerous metrics and statistics which demonstrate what is possible with effective marketing strategies. But remember, you should think of this like putting a Rickenbacker 4001 in the hands of Cliff Burton. If I were to pick up the same instrument my results would be different. Here are a few statistics floating around regarding marketing technology and improvements in efficiency and costs. Your results may vary.
Marketers who implement marketing automation see 53% higher conversion rates and annual revenue growth 3.1% higher than others.
Email marketing has an ROI as high as 4,300%.
Successful lead nurturing programs average 20% increase in sales opportunities.
So, there’s three quick stats, a quick google search will yield hundreds more. The key here again, is that the marketing automation platform, or the marketing technology used is only the tool to help you be a better marketer. The right tool can save you hundreds of hours. Pair your expertise with a powerful platform and the results will be epic.
*For full disclosure, I contribute to the Mautic, free marketing automation platform, and have a strong bias to the belief that a powerful platform doesn’t have to cost a fortune. Mautic is an open source tool capable of helping you rock out like Metallica.
September 15, 2015
Finding the Right Fit
(Building An Exceptional Team)
Part of my duties in my day-to-day life involve finding the next great talented person to join our team. I don’t think by any means I am an expert at this, but I have been told on numerous times that we have a great team. (That’s not me, that’s the team believing in what we do). Remember these are not just empty chairs floating around and in need of a warm body. These are highly important positions for your team. Every single team member is important. When it comes time to build a team or fill seats, whether that is for a business or for a community there are several things I think are incredibly important. Some of these qualities might be surprising and some may be noticeably absent. I would like to share with you the five qualities I seek most often when looking to build a team.
These might be different for you and you may find mileage may vary depending on the industry or the focus of your company or organization. But I believe the following five qualities are a great place to start when building a team. I’ll give them each to you quickly and explain why I feel they are important.
Of course everyone is looking for an honest employee or co-worker. No one wants to think they are working with someone that will lie, cheat, or steal (remember though: if it’s in the refrigerator and unlabeled- that’s fair game). But in seriousness, an outstanding team member must have outstanding character. They should be not only honest and trustworthy but open. No, not the type of person who blabs every little detail about their personal life. But rather, they are quick to share their concerns, their potential problems and their work struggles. They are open and transparent in both successes and failures. I believe this is one of the most important character traits you want to find.
I love determined people. I am highly determined. I’m motivated. I love to work with people who are determined. They take the tasks they are given and they “make it happen”. Sometimes today that feels like an overused phrase but this determination to accomplish things is important. Immediately you may think the opposite is laziness, but I disagree, the opposite of determined is disinterest. They may be present and performing their job but without determination they are not the outstanding team member they could be. Determined does not mean working long hours every day either. Determination may require an occasional late night or at the least the willingness to put in extra time when the situation arises, but being determined is not being a workaholic. Being determined is more about a state of mind.
A great team member will be proactive not just in doing what is required of them but seeking out other ways to help the team succeed. This state of being proactive means being a thinker. Proactive team members are always interested and engaged, they want to see great things happen because they believe in what they are doing. But more about that deep down belief in the next point. Proactivity isn’t just doing more work or finding more work to be done. Proactivity means a sense of alertness to the team environment and the outside community. What does that look like exactly? I’m glad you asked. Here is a simple three word phrase that I like to use to describe this concept. Proactive means listening. Many consider listening to be a reactive or passive activity. But if you are actively listening to what’s being said what you’ll find is you are essentially hearing what could be next. If you are actively listening you are proactively building the future.
Yes, an outstanding team member needs to be caring. I don’t mean a touchy-feely, let’s all hold hands and dance through the fields type of caring. But the outstanding team member needs to care deeply about the team, the organization, and the community. How does this happen? Simple. When you build a team surrounded about a shared belief system. When you find those team members who see, understand and share the vision of the team then you will have found an individual who will care. Let me describe this quality by sharing another opposite. The opposite of a caring individual is an apathetic person. They show up, they do their job, and then…then they leave. They only punch the clock; these individuals lack determination, they lack the proactive understanding about the underlying foundation for why you do what you do. They don’t care. A caring individual must be deeply motivated by the reason why.
The last character quality I like to seek out when identifying exceptional team members is their ability to get excited. Too many times I think the idea of excitability gets a bad rap. People label someone as excitable if they are easily agitated, that’s a completely different word. When I say excitable I mean someone who’s passions can be stirred. They are caring, they understand the vision and they are compelled by the vision to accomplish the mission of the team. And this excites them. This drives them and gives them determination. to be proactive. I love to see someone get excited about what they are doing. This speaks to me. I see their passion and this passion, this excitement, is contagious. It spreads throughout the team. If you have a team member that does not have the quality of excitability then the team as a whole suffers. But when excitement works its way through a passionate team then each person feeds on that excitement and the passion builds, and builds, and builds within the team.
And those are five of the key qualities I like to look for when building a team. When I find someone with those traits I have a pretty good feeling they will fit within the team. They will share in the culture of the team. There are some great examples of company culture and team culture which I follow but I will refrain from commenting or sharing my thoughts on that aspect of hiring in this post.
You may have noticed a few qualities conspicuously missing from this post. No I haven’t neglected the importance of formal training, potential salary requirements, or the hard-working nature of a team member. But these are secondary qualities. They play a part but they are not what I look for first. I want to build a team that will last, a culture that inspires, and a community that grows for years, and decades to come. When I meet someone with the five qualities I listed above the result is usually someone who will not only fit into an amazing team but become an amazing part of the community.
July 30, 2015
An 8 Step Onboarding Process
One of the hardest thing in growing any community is not finding new volunteers (though this can be difficult), the hardest thing is encouraging those new volunteers through the initial process of contributing and continuing those contributions over time.
The Concept of Onboarding
This process of bringing in new volunteers and welcoming them into a community is labeled as onboarding. Onboarding is not a difficult concept and every single role in every single business undergoes some form of this process in the beginning. This is the process by which the new individual “learns the ropes”, understands the job description, identifies the work to be done, and determines a way to accomplish that work.
Many jobs have specific processes to accomplish this onboarding task and most companies outline them clearly in their manuals and job training programs (usually run by HR). Unfortunately while in corporate environments this is regularly seen as a necessary part of the process it is far too often neglected in open source communities and volunteer organizations.
I’ve seen this firsthand when communities encourage new volunteers to join, they beg for new helpers, and then they strand them. Oh, they don’t mean to strand them but they inevitably do. They leave them behind to fend for themselves. There’s many reasons for this and these organizations never mean to intentionally abandon their new volunteers but it happens; and it happens far too much.
Identifying A Process That Works
So if we can recognize there is a problem then we can formulate a solution! I propose the following 8 step onboarding process for community volunteers. This won’t be comprehensive and shouldn’t be applied blindly to every organization but I believe it gives a basic outline which can be used and adapted to meet many of the current problems found.
Step 1: Immediate Engagement
The very first step in the onboarding process is the easiest and the one step that most every organization understands and does fairly well. Every onboarding process must begin with finding new volunteers and immediately engaging them. Here’s the important thing to consider at this step: The organization must have someone responsible for reaching out, engaging, motivating, and encouraging new volunteers. Again many communities understand this importance and do this remarkably well and with determination. It’s easy to encourage people to join. It’s relatively easy to smile and cheer on an initial interest from a volunteer. For the sake of this article I will assume you are this person.
Step 2: Baby-Step Accomplishment
This second step is an important one. The same person (you) who initially engaged and encouraged the volunteer should provide them with a basic “task” or “responsibility” they must complete. When the volunteer has done this first step they need to be met with praise and recognition. The encouragement to get involved turns into praise for a job well done. Remember that no accomplishment is too small and nothing is too insignificant to turn into an opportunity to encourage and praise. You want to motivate and encourage continued engagement. Recognizing the time someone spends to accomplish a job is the perfect way to demonstrate this.
Step 3: Group Introduction
Once the volunteer has been engaged and has completed their very first minor accomplishment (and I do mean minor, this is something very easy to do!) the next step involves introducing them to a larger group of other individuals. You want to introduce them and make sure they feel welcomed by others. This is where community growth becomes a team-effort. Not only do you engage with the new contributor but you must also engage with existing team members and volunteers to ensure they are welcoming and friendly to the new person!
Step 4: Peer Connection
Of course you know that not everyone will make immediate friends with everyone else. Things like personalities, culture, regions, languages, and timezones all affect personal relationships. This makes some connections harder than others. Some relationships form naturally and immediately make lasting connections. Others just don’t. The important part is to identify one or two individuals in the group where a connection has been made and ensure they grow. You will need to connect directly with both the existing volunteers and the new volunteer. You are actively engaged in enabling and empowering these relationships.
Step 5: Second Accomplishment
The next step in this process of a successful onboarding means taking the time to observe and watch for the second accomplishment by your new volunteer. At this stage the peer connections you helped establish previously should be the primary points of contact within the group or team for the new volunteer and should take the lead in identifying tasks to be completed. They should also be the ones to encourage, support, and praise the new volunteer. Your job is not done however, you will need to watch and be ready to again recognize the work completed. You are a cheerleader and encourager.
Step 6: Engage Someone New
Here we have a turning point in the onboarding process. The new volunteer is no longer a new volunteer. At this point they are familiar with the organization, the team, the project, and the various other aspects of “how things work”. They have not yet become seasoned experts but they are highly knowledgeable. This is important, at this point they have a maximum potential impact for further growth. Think of it as the intersection between knowledge and passion. This intersection is the perfect time to have them begin engaging with new volunteers. They become actively involved with encouraging others to get involved. (The new volunteer is beginning to fulfill Step 1 above)
Step 7: Identify Opportunities
Our new volunteer is now officially considered no longer new. They are one of the key members of the team and serve in a variety of capacities. They now are available to work as a peer connection with new volunteers brought into the group. In addition, because of their tenure and involvement they are very aware of opportunities for growth within the project or community. They are active in identifying these, solving them, and delegating them. They provide these items to others who are currently at Step 5, their second accomplishment. (Remember: peer connections work to provide the tasks for that step).
Step 8: Advocate
We’ve reached the final stage of the onboarding process. I realize it feels long and exaggerated but this process is truly all part of what makes a community grow strong and for the future. This final step involves the volunteer engaging, motivating, and encouraging others. At this step the volunteer has been turned into…you. And thus the cycle completes itself and the community begins to scale.
Our goal in creating an onboarding process is to see the community flourish and grow. We all want to see viral growth and watch our volunteers thrive not only within the community but also personally. This 8 step plan for onboarding volunteers will give you the power to scale your community and increase your engagement with your contributors. Take this process, implement the specifics unique to your community and establish a system that will empower your volunteers! And of course I’d love to hear your stories of your journey!
July 27, 2015
You’re Going The Wrong Way
This was my first experience with Lyft, the other popular ride-sharing service. I had previously used Uber on multiple occasions but all the recent publicity and press I figured it might be time to explore the alternatives and see what else was available in the ride-sharing space. Lyft is of course the second most popular service with others coming along behind them.
I was familiar with Lyft but to be perfectly honest I hadn’t checked them out earlier partly because I was a bit turned off by the “fun” nature. I’m looking for a nice, professional ride, not a party car with a giant pink mustache. But here I was in Portland preparing to return after a long week of conferences and I decided to give the mustache a chance. I’d be leaving in the dark anyways. And so in the early morning hours with some hesitation I requested a Lyft and waited.
My driver, Max arrived promptly and to my relief the mustache effect was minimal. He helped me get all in and as I had heard I rode in the front seat instead of the back…no big deal. We settled in and he immediately guessed my destination to be the airport (I suppose there’s not much else people use Lyft for at 4 in the morning). I explained it was my first time using Lyft and was interested to see how things went. I had barely gotten these words out of my mouth when I was treated to one of the most heart-stopping experiences you want to face at a time of day when your eyes are barely open.
Max had pulled out and started driving along unaware he was driving the wrong way on a one-way street. No big deal, it’s deserted roads at this time of day right? Mostly. You see the one vehicle that seems to always be on the roads is the impressively-built, industrial-sized, public transit, also known as the city bus, equipped with a wonderful set of powerful headlights. It was at this moment, caught in the brilliant glare of two spotlights I turned to Max and rather casually observed;
“I think you’re going the wrong way.”
I can’t help but think in that moment how much I felt like John Candy and Steve Martin in Planes,Trains, and Automobiles. If you’ve seen the movie you know what part I’m referring to. Let’s just say I was relieved to see that Max did not have horns and an evil laugh when I turned to him with my now fully-open eyes and racing heart.
Thankfully Max was able to pull a quick and well-maneuvered three-point turn (I guess the Department of Motor Vehicles must have planned for this type of thing when they made three-point turns a mandatory part of the driving test.) We escaped without incident and were able to get back headed the right direction and had a relatively uneventful remainder of our trip to the airport. (Not sure there’s much more that could have been done to make it more exciting at this point).
So now comes the question. Would I use Lyft again? After a hair-raising experiencing like this do I feel comfortable doing it again? I’d have to answer absolutely I would. Things happen. Mistakes can be made by anywhere and at any time. This could have very easily been a once-in-a-lifetime fluke. But if I book a Lyft in the future and find myself in a similar situation, or any other less-than-optimal experience…well that might just close the book on the service for me.
You see, as humans we’re tolerant of an occasional faux-paux (well, most people are). We recognize that things happen and we’re willing to overlook them, forgive them quickly; particularly in a new service or new product. We are more tolerant. However, repeated negative experiences build on each other. We don’t forget things quickly (I can assure you I won’t forget this Lyft ride anytime soon).
How quick are you in turning?
This is the aspect that can absolutely destroy an otherwise great startup. You can have glitches in your beta, you can have a bug here or there that hopefully can be fixed quickly. A minor three-point turn and you’ve redirected the user back onto a successful journey in your app. But fail multiple times and your users will leave. They will establish a perceived pattern, they will assume a poor product, a bad implementation, and leave you with a failed startup. Yes, first impressions are important and critical to get right, but they are not the only thing to consider. The overall user-experience, the attention to details, the responsiveness handling issues or bugs when they arise are just as important.
Are you listening?
In my startup life these are the types of lessons I’m learning. Listen to your users, they may be telling you that you’re going the wrong way. You may need to pivot or simply do a quick, three-point turn, but always be listening. I hope if you’re in a similar situation you can draw some inspiration, encouragement, or at least a laugh from my journey and use it to make your startup-life more successful.
July 3, 2015
The Price of Free Software
Let’s talk for a minute about the topic of free software. As you may know I am deeply involved with the Mautic community which offers a free marketing automation platform. This platform is free, open source and available for immediate download by anyone interested. I am thrilled to be able to play a part in this community which seeks to support businesses, organizations, and people in their marketing efforts without asking for anything in return.
I have over a decade of experience in this type of environment as I’ve previously volunteered my time in the Joomla community as well as spending time in both WordPress and Drupal communities. All of these communities are centered around a free product and also an open source one. Their content managements systems can be downloaded and installed and used with no payments made. These are merely three additional examples drawn from personal experience, hundreds if not thousands of other communities exist to provide free software. This leads to an inevitable question. Is free software truly free? What is the hidden price of free?
I’m going to break this down into three sections. First, we’ll examine monetary costs, second we’ll look at secondary costs, and lastly we’ll look at future costs. After each section we’ll draw a conclusion.
The Monetary Cost of Free Software
This first point may seem almost ludicrous since we’re discussing free software and by very nature free software implies that there is no monetary cost. However, unfortunately in some cases free software is limited software. These types of free software are poor restricted attempts to win customers by offering something free which in truth is merely a hint or shadow of what the software should do.
This is a uniquely cruel form of torture and one which should be abolished and abhorred. No software intentionally shackling or tethering the user under the guise of free software should be allowed to exist as free software. This kind of “free software” does indeed have a very high monetary cost and unfortunately gives all other types of free software a bad name.
Conclusion: All free software has not been created equal.
The Secondary Costs of Free Software
There are, of course, additional costs associated with a software platform that exist far beyond the money spent in acquiring the software. These are indeed very real and should not be forgotten. Let me name just two of these secondary costs for you.
- The Learning Curve: With free software there is a learning curve which the user must overcome before they are comfortable using the platform. This learning curve requires time and dedication. This time can be extremely expensive. And yet, I would challenge you with a question. Could I not remove the word “free” from the first sentence and the statement would remain the same? “With software there is a learning curve which the user must overcome before they are comfortable using the platform.” Yes, this statement is also true and valid.
- Training & Support: Free software may not cost for its use, but there are training and support expenses which result from the use of this software. And again, these costs would be equally attributed to paid systems as well. Every time software is implemented there is an opportunity for training and support fees to be provided.
So we see that there are opportunities for additional secondary costs associated with free software. There is something though that I touched on briefly in the second part of the Learning Curve cost. The time involved in learning a new platform, of any kind, is a cost that can be most exorbitant. But here’s an interesting suggestion. When dealing with a free community full of active volunteers this learning experience can be much aided through network of others. This type of learning can never be accomplished in the same volume by a paid software company. Thousands of volunteers working and participating on the improvements of the software able to answer your questions, offer advice, and improve your understanding makes your learning curve easier with free software.
Conclusion: All software has secondary costs.
The Future Costs of Free Software
Here we explore the potential future costs as a result of implementing free software. Some would suggest that because free software is free it must then be unsustainable and more liable to disappear in the future. I find this somewhat ironic. These communities which exist purely for the growth and improvements of the software and are not tied to a for-profit business serve to exist for far longer times. Successful communities will be able to continue without fear of failure due to lack of funds. Now free software where the code is also open source means the code will be forever in existence and available to everyone, anywhere. And lastly, due to the sheer size of free, open source communities volunteering there is a much larger development pool capable of continuing on the progress and improvements to the software.
Conclusion: Free software is not bound by for-profit corporations for future existence.
I am not foolish to assume that all free software is as wonderful as the software I listed at the beginning of this post. These are both free and open source software tools which are a bit different from just examining “free software” however, my background and experience leads me to speak to this type of free software. There are of course other, far worse examples of free software which harm the concepts of the software listed here.
And lastly, you may notice that the second item listed is the only example where actual costs may exist. This is indeed a cost associated with free software. However, as I stated this cost exists regardless of the nature of the software. Both free and not-free software hold these secondary costs. Therefore I believe it is fair to say these costs are valid to be disregarded when valuing the cost of software since they will exist in any situation.
I conclude then that while there may be costs associated with free software you will find that these costs are far, far less then in other situations and ultimately you will still find free software to be more cost effective than the alternative.
June 4, 2015
I know you’re probably thinking when you read the title that I’m referring to socially unacceptable or perhaps profane talk. That’s quite far from what I’d like to share with you though. I’m referring to the differences of languages around the globe and the impact that these languages have on communication, growth, and community.
As most of you know I am deeply involved in the Mautic community. This isn’t the first community I’ve been a part of and I doubt it will be the last, but Mautic does hold a special place in my heart. Recently I witnessed something that gave me chills of excitement. You know what I mean, those raised goosebumps on your arms that tell you something big is happening, something way bigger than yourself and something so exciting your body reacts physically to its revelation.
You may be wondering what triggered this response. Language. Specifically the wonderful, beautiful Thai language. Not too long after the Mautic community was formed and began to grow I received a contact request from Akarawuth Tamrareang. He was very polite, very friendly, and very excited. He was excited because he saw an opportunity. He saw a young, vibrant and growing community that could be thrust forward to an entirely new level as a result of his direct influence and skills. He reached out for confirmation and support in his effort. His undertaking would not be a simple one. Krit, as he is affectionately called, wanted to translate the entire Mautic website into Thai.
I have to pause here and give you just a bit more personal information. I am an American, more specifically, from the United States. I took the required foreign language courses during my educational years but sadly I am no proficient in any language beyond English. (Unless, as I like to joke, you count code as a language and then I know a couple more). I travel extensively around the world and it never ceases to amaze me how many people speak multiple languages. I admit I am always left in awe at their ability. I respect and appreciate the skill this requires and the dedication of so many to be able to communicate in multiple languages. Now you know just how incredible I find Krit’s request and his ability.
Of course the Mautic community encouraged and supported Krit in his task and recently I was excited to reveal https://th.mautic.org as a translated version of Mautic.org. This is what gave me those chills. This is incredible. Almost overnight the Mautic community has been expanded in a mighty way. Now every native Thai speaker can experience and learn the power of Mautic in their own language.
This is the kind of thing that grows a community. It starts with one. Mautic is blessed to have Krit. But this is just the beginning. And I am excited to share that there are others following already! I will share each with you as they are announced!
And if you read Thai (and even if you don’t) you should take a look at this beautiful site.
May 11, 2015
Cheaper by the Dozen
Each of you possesses the most valuable item in the world. I don’t care where you work, where you live, or where you bank. Each of you is incredibly wealthy. Each one of you possesses something invaluable. You’re probably thinking I’m crazy because I haven’t seen your bank balance. :) But I’m not crazy. Because it does not matter if you have any of the tangible goods or resources of the world. There is only one resource you have that can never be replaced. You can’t make more, buy more, or borrow more. You can’t re-use it. This resource is your time.
Time is paramount. Throughout all of history there has been no discovery sought after as much as the quest for immortality. Humans have always looked for ways to prolong the inevitable death and thus the ending of their time. Dynasties rise and fall, wars are raged, empires are established, and then decay. Solomon mentions this inevitability when he says ashes to ashes and dust to dust. In spite of everything we do and accomplish, time presses ever onward. Time is of paramount importance.
Time drives us, time moves us, time consumes all of us. Therefore those things which affect time are also important. When we look at what consumes our time we start to look at how time is lost, or more directly how our time is wasted. Our time is our most valuable possession. We want to spend our time wisely. This interest in how our time is used – this is efficiency. And this is what we’re talking about today. How do we improve efficiency in our world, in our business, in our design?
I would like to share 3 stories with you today. 3 stories and 3 points. Very short, simple stories that I hope you’ll be able to see a connection and a common theme weaved throughout leaving you with a thought you can carry with you as you go.
I travel a lot for conferences. Most of my travel occurs via airplanes. Man, I love airplanes. The ability to move around the world so quickly compared to the old days. I would never have been able to survive a 3 week trip by boat across the Atlantic. It would have killed me I’m quite sure. I like to move fast. I like to get get where I’m going and get things done.
Airplanes are great. Airports however, are not always that great. How many have had the wonderful opportunity to travel via airplane? And how many have had the wonderful experience (err, great misfortune) of having to endure an airport? Yeah, they seem to go hand in hand, which is unfortunate because I would definitely skip the airport part if I could. Just the flying part for me please.
Because I travel so much my odds of misfortune are higher. I have a greater chance of missing a connection, losing my luggage, or experiencing the extra bit of lovin’ from a personal security screening. (That’s right, you know what I’m talking about. Usually I prefer them buy me dinner before we go there!)
Well, one of the worst feelings I think I’ve ever experienced is running through an airport terminal so I can catch my next flight. That’s a miserable feeling. On one trip I was passing through Washington DC to return to Europe. Man, I remember this like it just happened. I think I still to this day have nightmares about this one. The flight across the Atlantic only happens once a day. If I missed this flight I would be stuck in DC overnight and have to wait an entire 24 hours for the next one. My flight landed in Washington and I had 30 minutes to make my connection. Sounds like plenty of time. I grabbed my bags and began the brisk “walk” to the other terminal. Well suddenly I found myself in a queue (Like that? I’m using the Queen’s English).
A line. A security line! I had just gotten off a plane where not 1 hour before I had gone through security. Here now I was stuck in another security checkpoint. What a terrible inefficient process. I’m all for security. But let’s talk about this for a second. My flights are scheduled to give me 45 minutes between flights, I was delayed a bit so only had 30 minutes, regardless, not much time. I went through security initially, boarded the plane through the secure area, travelled on a secure plane, landed at a secure gate, and walked through a secure terminal to arrive at this security checkpoint.
Do you see my point? What an inefficient process! And I’m not even going to start on the actual security screening process. So horribly horribly inefficient. Heathrow is especially full of opportunities for improvement! If we have time I’ll share some of those with you too.
Well I won’t keep you in suspense any longer. I passed through security and rushed to my gate. At this point I’m no longer briskly walking, this is full-on jogging at this point. All pretense of self-respect and dignity were lost as I dodged the other travelers in my way. I made it to the gate mere seconds before they closed and slid, hot, sweaty, and out of breath into my seat on the plane. I made it. Barely…, but I made it. But I wasn’t alone, almost at the same time the person to my left dropped into his seat as well. He was holding a small cooler on his lap.
I realized he had actually been running with me through the terminal. We were both taking the same flight to Washington DC. We were both stuck in the double security situation. We shared a quick smile as if to congratulate each other for our fortune. Only then, sitting in our seats did I take the time to see what he held in his lap. The inconspicuous cooler had medical tape sealing it shut and several labels plastered on the side. I read one: Human Organ Inside.
A realization dawned on me, maybe you too as you listen to this story. While it might have been an inconvenience for me to miss my next flight it was much, much more to my seat mate. It was in a very real way a matter of life and death. In the medical field where the amount of time an organ can survive outside the body is measured in minutes, every single second counts. An inefficient process, a poorly executed strategy, excessive steps in a security screening could be the difference between life and death. Efficiency is important.
So here’s your first point I want you to remember.
This leads well into our second story. This story relates to the medical field (as you probably guessed) and involves some numbers. But don’t panic. I’ll make it fun.
That number is how many seconds you have in 70 years. A second seems so fast, so inconsequential. But lets look at a few facts. Wait! Interesting facts, not boring statistics! In a second you can blink 7 times. In one second a very fast human can run 39 feet (12 meters). A second is all it takes for a commercial jet to travel 800 feet. (Yep, had to bring my airplane back into the mix).
All of those are related to speed, but seconds can relate to other things as well. In one second 4 babies are born. In one second 2 people die. Although we often think that a second is such a small insignificant unit of time much can be happen in a second. Lives are changed. The world is moved. (Quite literally, the earth moves 18 1/2 miles every second). If we believe every second is important than we should make the most of each. We should find the most efficient way to do things so we can save those seconds.
Frank Gilbreth was obsessed with this idea of saving steps, saving motion, and saving time. By reducing the motions required to perform tasks he could complete work faster, and more efficiently. Frank is actually where the title of this talk comes from, Cheaper by the Dozen is an autobiographical book written by Frank’s son about the life and methods of his parents. The book title comes from the fact that there were 12 kids in their family and they would often receive attention when in public for being such a large family. Frank would joke that it was more efficient to have 12 kids because they were “cheaper” by the dozen. Obviously a bit of a joke but it represents the very real way that Frank and his wife Lillian would approach every situation. He studied motion, he studied efficiency and how to improve processes. Sometimes he did so in unique ways, sometimes in quite obvious ways, but always in order to improve lives. Let me share one specific story with you.
Frank would time everything. He would video a process (now this was old school type of video, hand-crank cameras and all) and then he would analyze the video and the time it took to complete a process. He’d break down the process into motions and determine how they could be improved to speed the entire process up and complete the task quicker.
During World War I Frank turned his attention to the medical field and the surgical procedures followed with injured soldiers. He saw ways he could improve the process and save lives. He studied hours and hours of surgical procedures and he is responsible for some of the same time-saving tricks that are used even today in hospitals around the world. Every time a surgeon turns to a nurse and asks for a specific instrument, Frank is responsible. He found this saved a tremendous amount of time during these life-and-death surgeries. But he didn’t just improve the operating room, he also studied the movements and activities of the post-op patients and established methods for rehabilitating soldiers to continue living their daily lives.
That’s powerful stuff. Frank Gilbreth and his wife Lillian most assuredly believed in the power of a second and the importance of efficiency. They saw firsthand how being efficient could improve or even save a life.
This is the second point I want to leave you with today.
Timeout: Now I know you’re thinking this is all great and quite interesting, but how does all of this relate or affect me and my work. Designer, developer, business owner, user interface developer, user experience expert, and everyone else I haven’t named. We live in a world where seconds matter; even the milliseconds matter. Studies have shown a 1 second delay in page response can result in a 7% reduction in conversions. Or more specifically if an e-commerce site is making $100,000 per day, a 1 second page delay could potentially cost $2.5 million in lost sales every year. And that’s just page load speed.
Seconds matter in other places too. If your design is confusing, or your process flow difficult to follow you exponentially decrease your user engagement. 1 second is bad, 2 seconds is far worse. It takes only 2.6 seconds for a user to look at your webpage and determine where they should focus. Be sure that you focus your users and provide a very clear path for them to follow. Your goal should be to keep engagement high and initial commitment low. Efficiency in your process will support this goal. Employing time-saving techniques, motion-saving clicks are all important parts of this process.
You may not feel that you’re saving lives by reducing excessive clicks on your website but you are absolutely improving them. Think of all those times you’ve been frustrated with inane checkboxes, excessive steps, and pointless clicks. Now think of the times you’ve been pleased with a process that works well. Do you remember how refreshing, how exciting that moment felt? Your life was improved. It may not be as direct an impact as Frank’s but I assure you, your work, when done right, improves lives.
Sometimes it’s obvious the way you can be more efficient; and at other times it takes a bit of creative thinking to find ways to save those valuable seconds. This is the fun part of our work. We get to use our imagination, we try things. Sometimes they fail miserably, but often we are able to make a difference. This leads me to my last story I want to share with you today.
Sir George Cayley, does anyone know that name? Probably not. Let me give you a different name and we’ll start there. Has anyone heard of the Wright brothers? Yep, that name is far more familiar. In fact, they originate from where I currently live, North Carolina USA. These two brothers, Orville and Wilbur, are frequently referred to as the first men to fly an airplane. Now there are some discrepancies and debate over exact timing and the result is a more detailed attribution would be they are the first men to experience powered, controlled, fixed-wing heaver-than-air human flight. That’s a mouthful. But there’s something in that description that’s important. You see, the Wright brothers although they are more well-known were not the first to think of this concept. Decades earlier, even centuries for some of the ideas, there were others thinking outside the box, thinking uniquely. Sir George Cayley was one of these individuals.
Sir George was from Yorkshire (See how this all ties together?) and in 1799 he discovered and proposed the ideas of aerodynamic forces, the fixed-wing concept, and the use of separate systems for propulsion and control. Sounds familiar. Now before this time humans were still trying to fly, and you probably remember the methods they attempted. There’s plenty of video footage archived if you’re ever in the mood for a good laugh. It’s quite humorous.
But here’s the important thing: George thought differently. He saw a different world. He looked at the same problem but from a different angle. In some ways that’s similar to our previous story with Frank Gilbreth. Frank thought differently too. He would button his shirts from bottom to top instead of top down because it saved 4 seconds! That is definitely thinking differently.
Sir George may not be as widely known or as well-recognized but he thought differently. And that’s the important thing to learn from this last story.
This is my final point I want you to remember:
Whatever your role is, whatever your occupation is you will be better if you allow yourself to see the world from a different point of view, think outside the box, entertain ideas, and encourage your own personal growth. When you see the world differently you solve problems in new ways. You find ways to be more efficient and save valuable time. Don’t get stuck in ruts. Don’t follow blindly along the paths of those who have gone before without testing and proving it to be the best route.
Be willing. Be bold. Be different.
I hope these three stories and points are helpful to you. I want you to remember them. When you return to your work and you sit down at your desk remember these three simple things: Every second counts. Saving time improves lives. See the world differently.
If you start your day with that simple thought you’ll accomplish great things. You’ll make the most of your time, you’ll improve the lives of others, and you’ll create incredible things. I’ll end by saying thank you. Thank you so very much for giving me your time. I trust you found it well spent!
March 24, 2015
The Secret to Growth Hacking
Recently I had the great privilege to travel and speak at the 3rd annual CMS Africa Summit. I was asked to deliver two keynotes and the second one focused on the idea of growing a community. The session title: Building Powerful Community Networks, was given to me by the event organizers but I believe it was quite insightful on their part.
Below are my slides from my session. While usually I offer a more extensive write-up to associate with a slideshare like this I believe these slides speak fairly well for themselves. I trust you’ll look through these slides and you’ll be able to easily see the message I shared.
I believe deeply in the power of communities and I love researching how to scale community growth. I hope you’ll enjoy glancing through this deck and exploring what I see is the secret to growth hacking.
March 18, 2015
The Power of Product Hunt
Chirp. That’s how it began. A single, simple, chirp from my Tweetdeck. I was in the middle of a meeting in my office when the tweet came in and I glanced only half-interested while deep in conversation. When I read the tweet however everything else stopped.
— Product Hunt (@ProductHunt) March 17, 2015
That was all it said. Added as a maker of Mautic. (Our open source marketing automation platform and community.) But I knew what this meant. I was very familiar with the twitter handle @ProductHunt. For those that don’t know what Product Hunt is here is a brief explanation. Product Hunt features a list of the best new products on the web. Every day the list is restarted. Throughout the day these items are voted on by the community and comments added. This social aspect allows trending of the most popular new items. For startups and early stage communities this is an incredible achievement and I was well aware of the power of Product Hunt. I’d even submitted Mautic in the past but had never heard anything back.
Happy St.Patrick’s Day
Now, here on St. Patrick’s Day, I had just received notice that we’d been added. Things kicked into high gear almost immediately. I excused myself from the meeting I was in and quickly informed the rest of the Mautic community that we had been “hunted” as Product Hunt refers to the adding of a new item.
And as expected, traffic spiked. (See graph above) We watched – anxiously monitoring our web servers as they creaked under the sudden load increase. But though we may have been anxious we had a confidence because we had some great tools in place.
Some Of Our Tools
We were using a CDN for static assets (CloudFlare is amazing), we also have a secret weapon (not too secret). We use New Relic. We could monitor throughput, response times, CPU usage, memory usage, and errors in live time. This was incredibly helpful as there were moment when we were registering a dozen accounts a minute and we found a problem with simultaneous registrations. We were able to fix them incredibly quickly and notify those few affected users directly. Remember, first impressions are everything! Zendesk was also a great help in monitoring and responding to any specific questions or support issues.
Of course we had thoroughly tested and re-tested to ensure we could handle a traffic increase and traffic spikes (we knew we would be wildly popular once people began to hear about Mautic). But there’s nothing like the confidence that when things are actually exploding you are capable of dealing with the situations as they occur.
Helping Continue Momentum
We continued the buzz by promoting Mautic’s addition to the list through various social media posts. We had to work fast because although we were aware of Product Hunt and hoped to be featured we had to create the resources on-the-fly. We created a custom short URL, http://mau.tc/prod-hunt which would be easy to share (Thanks to Bitly.) And then very soon after the announcement we released this on our social media platforms:
But we didn’t stop there. We continued to share the good news to hopefully increase the visibility of our listing throughout the day. We updated all our social media platforms at the same time. Following some good advice we didn’t stagger our announcements but posted everywhere.
Later we created a second social media announcement focused on the specialness of being listed on St. Patrick’s Day and later in the afternoon we released this graphic:
The response was tremendous. These social media posts helped to boost our presence and awareness of our placement on Product Hunt. As a result we saw an increase in upvotes on the site and our listing began to trend. Things continued to grow as a result and now, the day after we are still “above the fold” as we continue to trend into the second day on Product Hunt.
All in all the day was a thrilling and somewhat wild ride. We saw thousands and thousands of new users and an incredible response to Mautic. Just as we had all suspected, people are thrilled when they discover the power of free and open source marketing automation. My alert may have started with a single chirp from a single tweet, but it wasn’t long before the notifications were coming in so close together the sounds were overlapping.
If you have a startup or a young community then you may be aware of Product Hunt already. If not, you should be. If you are, take a look at some of the tips I shared above to help you capitalize on your listing and do everything you can to maximize your social sharing!
February 23, 2015
Scaling Applications for Global Communities
Below is a transcript of the talk I gave recently in Oman at their Free and Open Source Software Conference (2015). If you want to watch the talk instead you can do so on YouTube starting at the 1:18:44 mark (Here is a direct link to my talk on scaling applications for global communities). Or if you prefer to download and read later, here’s a PDF version.
1. The Personal (about me)
I know you probably aren’t too terribly interested in hearing my entire life story so I’ll keep this short and sweet. As you may have seen, or read in your pamphlet, I am deeply involved in open source and several different projects. I spend an incredible amount of my time both creating code (I love to write code) and also telling others about open source code. I truly love speaking about open source and sharing the power of those communities with others.
Let me give you just a little bit more information about what I work on. I am extremely proud to share that I am the founder of an open source community for marketing automation, called Mautic. But I contribute to a number of other projects also. And one of those roles, in fact, the very first open source project I ever had the privilege of working in was Joomla, an open source content management system. I started my journey in Joomla just as a user and a developer (remember, I love to write code). But over time I became more involved with the community until today. Now I’m the community development manager for the project and am a frequent speaker, project evangelist for Joomla.
2. The Project (about Joomla)
This is without a doubt an incredible community. Joomla has been around since 2005. Fittingly enough Joomla and I share a birthday, August 17. Many of you probably know that Joomla was a fork from a previous open source project called Mambo. Since 2005 Joomla has continued to grow and expand and is now recognized as the second largest, and most downloaded CMS in the world. That’s pretty big news. It gets even more exciting. Joomla not only holds the second largest CMS market share but is the largest not for profit, community-driven CMS project. No other CMS platform has this type of honor.
So that’s a pretty nice introduction to Joomla, but maybe a few more specific examples will help to put the true size of the Joomla project into perspective. And you’ll see later how this all ties in together.
- Joomla is multi-lingual
- Joomla is accessible
- Joomla is convenient
Great ideas? Well Joomla is much more than just a few impressive statistics. The Joomla community focuses on an aspect much more important than just the lines of code. Something deeper. Joomla focuses on people. The individuals who make up the Joomla community. These unique and special people all play a vital role in the success of the project. Here are some numbers related to the growth of the Joomla community.
- Joomla has been downloaded over 60 million times
- Joomla has more than 2,000 forum posts every day
- Joomla has more language translations than any other CMS
Again these are some fine examples of the size and scale of the Joomla community. This also demonstrates the growth rate for the community. I mentioned that Joomla focuses on people. I want to return to that in a second. But before I do that I want to touch briefly on just a couple more areas related to the Joomla project.
These two areas are often the most difficult to bring up when sharing Joomla with others. It’s not always pretty. And it’s not always easy. But the truth is Joomla is just like any other community and any other project. It has struggles, it has problems, and it ultimately has successes. Let’s take a minute and look more closely at a few of the struggles which face the Joomla community. Perhaps you can relate to some of these.
Joomla has grown quickly and has struggled to maintain order. Obviously anytime you see the type of amazing growth that the Joomla community has seen you will have difficulty maintaining order and avoiding chaos. It’s almost inevitable you will find yourself struggling with keeping that easy-to-understand, easy-to-get-involved nature you often find in smaller communities. When projects scale to huge sizes the simple act of getting involved as a new volunteer can be an incredibly difficult task (and sometimes an impossible one). This struggle for order is even more of a potential failure when the project is completely and totally community driven. Without any single entity supporting the community, helping to make the tough decisions, and ultimately ensuring the project’s forward progress it can become difficult to avoid confusion and chaos. I’m not saying it’s impossible, Joomla has worked very hard to show that this is a possibility. What I am saying is that it can be difficult and it’s certainly a struggle.
Joomla has struggled with adapting to change. Just as you will find in many large and established companies (Think Microsoft). It can be a very difficult struggle to stay relevant and ensure your project doesn’t begin to just tread water. The minute you begin treading water is the minute you begin sinking. A project must maintain its vision for the future. A community must be driven to continue improving, innovating, adapting to change around it. When a community (or business) does not allow for change, it will ultimately die. If we consider Microsoft as an example then we can all relate to this sense of stagnation. What was once a booming technology company on the cutting edge of everything is now a behemoth trudging, plodding along through the daily chores of bug fixes and patch Tuesdays. Gone are the glory days of new release after new release. They spend millions (maybe even billions) of dollars in their research and development departments. They understand the power of innovation and the need to return to those monumental discoveries. Joomla must also be able to pivot, to make changes, to improve and adapt.
Those are a couple of the struggles the Joomla project faces. They are difficult to share but understanding and knowing your struggles is the first step in overcoming them. So I talk about them openly. I share them with you and I hope to share how we overcame them. It’s an ongoing, continual state of learning.
3. The People (about the community)
I mentioned the Joomla community and the focus that Joomla has on the individual volunteers, contributors, and people which make up the Joomla community. Let’s look now in a bit more depth at several facets of these individuals. This is the good stuff. If you only take one thing away from my talk today. Learn this. People matter. More than code, more than working groups, more than teams, more than documentation, more than anything – the people who are giving their time, who are giving their lives to the project: these people matter. That’s one of the most important things I’d like to share with you today. Relationships are important.
Let me tell you a little story. A Joomla story. This is the story of a person who is relatively quiet and shy, would never step outside their comfort zone and would never think about standing in front of a group of people to talk. In the beginning it started with a few small bug fixes. A pull request for improving a module. Nothing fantastic and certainly nothing ground breaking. In fact I’d dare to call them worthless fixes. But they weren’t worthless. Because they served as the beginning for something greater. These seemingly minor one or two line comment spelling corrections were just enough for this individual to stay committed to the project and continue keeping involved in the community. As time passed the encouragement from others in the community helped this person become more involved. Soon, at the bidding of his new friends within the Joomla community this individual applied for a leadership role. He was welcomed with open arms and continued his involvement soon he was spending a significant amount of his time each day devoted to the success of Joomla. He became more and more involved and was passionately committed to the community. All of this came from a few almost meaningless lines of code. Why? Because of the encouragement and support of others in the community. As you have probably guessed this is my Joomla story. This is how I came to my position in Joomla. If you hear nothing else from my story I hope you will hear this: Encouragement, support, and the relationships formed with others in the community are of utmost importance.
If we are to explore the complexities of scaling an application for a global user community then this should be our one guiding principle: People matter.
There are of course many aspects which can prove to be difficult when growing an application to global size. We will discuss a few of those and look at how Joomla has handled each. I refer to Joomla as our case study because as I have demonstrated above Joomla is a worthy and fitting case study for us to examine.
Let’s look at three different problems which must be overcome if you want to scale your community globally. First, languages can prove to be challenging. As you are aware even from my speaking here today there are times when languages can prove a difficult obstacle to overcome. As your community or application grows beyond the boundaries of your country or your specific language it will inevitably face this problem. Each new language, each new country where your application begins to be used introduces a new set for potential problems. Let me explain. When I say languages are a difficulty I am not referring merely to the words. Of course the words present the most obvious challenge, but in the world we live in today we are blessed to be able to translate our words.
Notice, I said translate our words because translating our words is not the same as translating their meaning. This is where the true problem lies. There are so many other aspects of language which must be considered. Things such as tone of voice, implied meaning, cultural differences, are just a few ways in which language barriers can prevent successful project growth. In order for your project to be a success you must consider all of these aspects. Take Joomla for example. Joomla has been incredibly successful in this regard. If you’re not aware let me share a statistic or two with you. The Joomla CMS currently has 58 different translations that’s a staggering number of languages. Each of those translations has a working group of individuals dedicated to keeping that language up-to-date with each new release of the software. But as I mentioned it’s more than just language strings or words. Joomla works very hard to ensure that implied meanings and cultural differences are also considered when working groups and individuals collaborate. Great care is taken to be considerate in all communications. This sounds trivial but is instrumental to the overall success of the project. Joomla has created a wonderful culture code document which outlines specifics for how the Joomla culture should be created and maintained. Languages are more than words.
I offer a second example from a much younger and newer community, Mautic. I have begun implementing exactly what I stand before you and share. Languages are an important pillar in the building of a global community. Within only 3 weeks of launching the beta for the Mautic open source product we have been able to see 5 complete language translations and a dozen more started. It’s exciting to witness and it shows to everyone that the Mautic community values each language and each country.
Here is your first lesson: If you want your application to be globally accepted, to scale to the size of a world-wide audience then you must consider the value of languages, both in word and in meaning.
Next we turn our attention to a second important problem that must be overcome when scaling globally. Timezones. It is often easy to forget in a daily routine of application development and product releases that there is an entire world of varying timezones. 2PM in one location is 2AM in another. I can tell you first hand speaking from my own experience in the United States it can sometimes be forgotten that not everyone is on the same relative time as I am. If you are interested in being able to grow your community, or your project, or your organization to a global size then you must remember and account for varying timezones. Let’s take another look at Joomla and how this community handles the timezone problem.
The Joomla leadership is comprised of three different teams working in harmony across the many aspects of the project. These teams are each consisting of individuals from around the world. Each team has dozens of different timezones. Joomla has used several different tactics but one in particular has proven to be useful and serve the community well. Joomla alternates the the schedule of leadership meetings. What does this look like? Joomla changes the meeting time when a leadership gathering is held. By doing so Joomla ensures that there is an equal opportunity for each person to meet in a timezone that is most convenient for them. (and everyone shares the same inconvenience) The timezone is an often overlooked important aspect of being able to scale an organization.
In the beginning this can be a difficult task. When your community is small this will be a challenge and will require dedication and attention. I share an example from Mautic. This community as I told you before is much younger and much smaller. As a result the initial community members must be more flexible and more dedicated with their time. When beginning to grow your community be prepared to spend significant amounts of time at all times of day and night. You may not sleep much! But if you are committed to seeing your community be successful you must be prepared to make the sacrifice.
The second lesson to learn: In order to increase the global availability of your community and project you should pay attention to the timezones of your contributors and volunteers. Make your community convenient.
We arrive now at our final problem you should seek to overcome as you grow a global product. I say final, but in reality there are many more problems you will face. The task of building and scaling an application is a constant and ongoing challenge. But we look in particular at three problems and this final one is related to accessibility. Just as you want your meetings (timezones) and your communication (languages) to be convenient you want also for your community to be accessible.
I’m quite pleased to share the success Joomla has seen related to being an accessible project. Don’t mistake me. One of the reasons why Joomla has been successful in regards to accessibility lies in the fact that it continues to focus on and constantly improve accessibility. This is not a one-time thing to be solved and then ignored. This is a key point. Joomla continues to focus on this aspect of its community and the software. Through the use of specialized formats, screen reader improvements, and special administrator templates designed specifically to be accessible Joomla shows its incredible attention to accessibility.
Here is the third lesson: To scale a global community requires focusing on every type of user and being a community whose people and whose code is accessible to everyone.
So we have covered three lessons to help scale an application for a global community. Dealing with languages, timezones, and accessibility. As your project and community grows you must focus on each of these areas if you want to overcome the complexities of a global community.
Let me quickly give you some practical steps for implementation. First, you must plan ahead. Don’t think only about what your code or your community looks like today. Look ahead at what it will become in the future. Plan for what will come in future days, weeks, months, or even years. Be prepared and be constantly ready to make changes when needed. Next, monitor everything. You will need to be vigilant as you watch your community grow. You must be monitoring your code to ensure it remains stable and can handle an increased load of traffic. You must be monitoring your community to ensure it continues to grow and that it is accessible, and convenient for new contributors to take part. Lastly you should take what you have planned, mix with what you have seen through your monitoring, and apply it to improving your community. You cannot simply observe and make plans without implementing them. You must be looking to constantly improve. Your code must adapt and grow as new opportunities arise. Your community must adapt and grow as you scale to larger size.
Let me close with this. There is no formula that guarantees you will be successful in scaling an application for a global community. It simply cannot be put into a specific step-by-step exact plan. Rather what I offer here are some important lessons that when put into practice will offer a strong path to lead towards a successful global project. I want to thank you again for this opportunity to share with you what Joomla has proven to be a successful strategy for scaling and what Mautic is also following in like manner. And I wish you each success as you seek to grow your communities and projects. If you have other questions or ideas feel free to reach out to me. I would be happy to answer any questions that I can and look forward to hearing what you are passionate about!
February 4, 2015
January 5, 2015
The Importance of Planning
Everyone loves to point out those projects which are immensely popular and claim they were overnight success stories. There is something glamorous about the idea that the next day it might be something new. Or, even better, that it might be their idea. Success is only a day away. Unfortunately this notion of instant success is more myth than fact. Some of the greatest companies that have been termed overnight success came from a very different background. The truth of the matter is much less glamorous and much more realistic. Great ideas involve planning. Planning is vitally important to success. Let’s look briefly at 5 reasons planning is important.
1. Planning helps identify goals
One of the most beneficial aspect of planning is in creating goals to accomplish. When you sit down and write out what you want to accomplish you will be surprised how this goal structure lends itself to creating a plan for accomplishing them. There are a couple of different strategies when working on goals. Some of the more popular include creating three goal types, short-term, mid-term, and long-term.
Short-term goals are those items you would like to see done in the next 2-3 days. These goals are quick, easy to accomplish and relatively simple goals. The mid-term goals are things you’d like to accomplish in the next few weeks or months. This is the broadest time scope and can vary in degree of difficulty. Ultimately each of these mid-term goals are concrete, well-defined goals which can be directly actioned. The last goal type is the long-term goal. These goals are much more abstract and contain more figurative type of language. These are the big picture goals and long-term aspirations you hold for your project.
Writing these goals out and organizing them into these three categories (of course you can use more if you like) will give you the great beginnings to a roadmap. This roadmap is what we’ll look at in our next point.
2. Planning offers directions
If you start creating your goals in the first step and organize them accordingly what you’ll find is you’ve begun to take the first step towards creating a roadmap. Planning a direction for your project or business involves creating a roadmap. Planning takes many different shapes and sizes and as you create this roadmap for accomplishing your goals you will find your planning is offering you great direction.
Business direction allows you to plan for a course of action you will take to accomplish your goals. Planning how you accomplish them is a valuable exercise for your business growth and development. As you plan you will put together a course of action. This course of action will help you to be prepared for what comes next. You’ll be ready to answer questions and you’ll have an advantage over others which have not prepared for their future.
3. Planning uncovers problems
You create your goals and identify your direction and you become prepared for what is coming next. The more prepared you are the better you are able to handle problems as they arise. Even more than handling problems as they arise the art of careful planning will help you to uncover potential problems before they even occur. When you work to carefully plan out a direction you’ll undoubtedly uncover possible bumps in the road along the way. If you aren’t careful in your planning you may never discover them until its too late.
Uncovering problems means finding solutions and implementing fixes before they become a reality. There are few things as exciting as fixing problems before they are even found. Being able to resolve conflicts and work around issues is an invaluable business advantage. Careful planning helps uncover problems.
4. Planning adds professionalism
Professionalism doesn’t mean stiff and stodgy. Just because you are professional it doesn’t mean you can’t have fun. Professionalism means you are prepared. Preparation is another word for planning. Planning adds a sense of professionalism to your business. When you plan your course of action, when you outline your goals, and when you uncover problems you give yourself the opportunity to be prepared for things that arise.
Being prepared keeps you from getting caught off-guard if things don’t go as planned. This is an important point. Planning does not mean everything always works as you intend. Errors, problems, and failures will still happen. Planning helps you stay professional as you handle those times. Planning keeps you prepared for when things don’t go as you hoped.
5. Planning gives perspective
Lastly, planning your goals and your direction helps to give you a clear perspective of what matters and what is possible to accomplish. As you create your goals you will focus on what you want to accomplish. Planning how to accomplish those goals will force you to organize them and also to prioritize them and put them in perspective. No one wants to waste time working on something that is not important. However, the day to day life of a startup or small business too easily gets overwhelmed and those goals and objectives get lost in the daily grind.
Planning helps to stay focused and to keep your perspective. Keep your perspective on your purpose and your future. Then and only then will you see success and you will be rewarded for your planning.
“Meticulous planning will enable everything a man does to appear spontaneous.”
– Mark Caine
Because as much as human nature likes to believe in overnight sensational success stories, the truth is more common. Perhaps a change to a well-known quote would be appropriate. Instead of “practice makes perfect” a better quote would be “planning makes perfect”.
Don’t believe in wild fantastical stories of instant fame; instead plan a course, identify goals, and move confidently towards accomplishing them. Maybe you will be the next company everyone is talking about.
December 16, 2014
If you think about the title of this post I wonder what might be the first thing that comes to your mind. Perhaps you think of an antonym – closed, or maybe you think of an action taken as with a door or window. Perhaps you think of someone being an open book and what that entails. There are any number of proper definitions of the word open. If you are anything like me (or you live in the same circle as me) then you’ll more than likely think of the same definition as I do – open as in open source. But let’s look at a few of the alternate definitions and then seek to apply them to open source.
1. Open as opposed to closed.
When we look at open in terms of being the opposite of closed there are several things to consider. First, something that’s closed is usually hidden, restricted, or kept back. Being open therefore is the opposite of each of those, easily found, unrestricted, put in front. This openness is easy to recognize and can quickly be spotted by anyone looking. Open is a concept familiar to all, regardless of language or translation.
2. Open as a door or window, a verb.
The verb form is the second way of looking at the word open. Open is an active verb which demonstrates a proactive approach to something. When you open something you give it the properties listed in the first definition above. You take something previously closed and you make it open.
3. Open as in a book.
This definition for open comes from a popular saying, for example, he read me like an open book. This use of the word open implies a sense of transparency and easy to understand nature. Similar to the first definition above when something is open the result is transparent. Easy to read, easy to follow, and most of all open. Open to be read by everyone. This final definition lends itself well to the definition of open source I personally enjoy the most.
4. Open as in open source.
Open as in open source. This is the definition of open that I tend to use on almost a daily basis. Open source often refers to the concept of source code being available, transparent, and free to review. This open source code is open (as in the opposite of closed), it’s an action that is done proactively by the communities which surround these projects and it’s open as in transparent (like a book). There’s something exciting about open source and the thrill of contributing to something amazing.
Each of these are valid definitions and each carry a unique meaning. I trust this post has encouraged you to think more closely about the true meaning of open source and how each of these definitions can legitimately be applied to the concept of open source as we know it.
We live in a world being eaten by software. Let’s make sure that software is open; in every sense of the word.
December 15, 2014
Beta List Featured Startup Mautic
So there’s an awesome website, if you’ve never heard of it you need to check it out. It’s called Beta List. Beta List gives you just what it sounds like, a list of awesome new software platforms that are currently in beta. You can get a quick overview of what the app does and view a screenshot or two before visiting the site to sign-up for the beta.
No, not an advertisement!
Why am I talking about this website? I’ll tell you why. Yesterday I was notified, much to my delight, that our young, new community Mautic has been added to the list and featured. It may not seem like a big deal to you, but it’s pretty awesome to be placed on the list among other great up-and-coming beta apps. We’re incredibly excited to share Mautic with new people and introduce others to the future of marketing automation. Free and open source marketing automation.
Check us out!
If you have time I’d encourage you to stop by our listing, check us out, but also look around at some of the other amazing beta opportunities listed on the website. Oh, and I apologize in advance because you may get lost in the excitement of looking around and lose track of time.
December 10, 2014
Crowdsourcing design is a trendy way to get things accomplished these days. And when you think about it, there is certainly some appeal to the idea of getting dozens of high quality designers working on your project. As a business looking for a new design you get to set the amount you wish to pay and then sit back and pick the design that appeals to you most from designers producing design after design for your review.
But it gets even “better”, as the project backer you don’t even have to pay for revisions or changes. You simply share with everyone the changes you want, the things you like and the things you don’t and the designers will rush off to create updates and new mockups. And it doesn’t cost you a cent. Sounds great. Sounds too good to be true. The problem is, as you’ve been told time and time again…if something is too good to be true; it probably is.
Crowdsourcing Cheapens Designers
What is a good design worth? Design can be a difficult thing to associate with a price. There are so many different factors to consider. The experience of the designer, their education, their years in the field, and a number of other qualifications are typically all taken into account when a designer bids on a design job. However when a job is placed out on a crowdsourcing site and the business sets the price this dynamic is demolished. No longer does the designer put out a thoughtful proposal. Instead the job goes to the designer who has the most time and values their abilities the least while still maintaining some resemblance to quality work. Of course there are good designers on crowdsourcing sites like 99designs.com and fiverr.com and similar. I would never imply that there aren’t good designers on these websites. But they are forced to work on spec (that’s a topic for another post) and they are forced to compete against many other under qualified designers delivering sub-par work simply to fit within a budget, a timeframe, or other limiting factor.
I understand the importance of competition and I understand the value of the market place setting the standard for prices and deliverables. But design is a mix of art and science. The truly great artists will seldom spend their valuable time creating work on spec in a public setting with no commitment or interest from the business securing their services. What remains are those designers eager to make a name for themselves or simply deliver a lesser quality of work for the purpose of winning a quick payment.
Crowdsourcing Kills Creativity
It seems ironic almost to think of crowdsourcing as killing creativity but it’s true. When a project is put out on display in public for design submissions as is the most common practice on crowdsourcing sites the result is often the same. The buyer places their ideas in a brief for how they would like to see the design, often specifying colors, similar logos they like, and any other aspects they would like conveyed. Everyone gets the same brief. But then things begin to unravel. The first “round” of designs which the buyer reviews will be the most original they will ever see. After this step they will have effectively destroyed all creative elements of the design process and it comes down to designs being iterated upon until one is selected. Again, this might sound great but it’s not. The reason this process is bad is simple. Everyone is able to see the feedback the buyer provides on the submitted designs. This means everyone sees which designs the buyer prefers and the feedback they like. Even if a site offers to hide the feedback but allows the selecting of good designs and the removal of rejected ones the result is the same.
Creativity dies as every designer must begin consolidating all designs around the few selected favorites by the business owner. No longer is the designer in charge of creating a unique and memorable design, but instead they are no relegated to mimicking the favorited designs. Goodbye creativity.
Crowdsourcing Encourages Stealing
Some may suggest that the previous point also deals with stealing in the sense that all the designs begin to converge and as a result similarities from the favorited designs begin to appear in every other designer’s work. There is, however, a much greater form of theft which plagues these crowdsourcing design websites. Crowdsourcing design has serious limitations as mentioned above. Time is tight, the payout is even tighter and the pool of designers is huge. All of these forces combine to make a compelling reason for designers to cut corners. The temptation to steal existing designs, make minor modifications and pass them off as original works of art is too great. This leads to very unfortunate outcomes. First, the designer has compromised their own sense of ethics by stealing the work of another designer. Second, the buyer suffers by unwittingly believing they are purchasing an original design when in fact they are merely receiving a stolen, plagiarized copy. This can lead to disastrous results. In the case of design work where the new design will represent a brand it is of utmost importance to have original, copyrightable designs.
Crowdsourcing puts unhealthy pressure on designers to steal previously created art and other copyrighted work in an attempt to meet the tight deadlines, high competition, and low payouts of design contests.
As I mentioned there are certainly benefits to crowdsourcing and even for crowdsourcing designs. But I would always insist that buyers be very cautious, and designers should be vigilant. If you are a business purchasing a new design my first word of caution would be to not rely on crowdsourcing for key design elements (think logo, brand identity, etc…); second I would encourage businesses to be very cautious of the origin of any design work chosen. A simple Google image search will often uncover the most blatant copyright infringements. And lastly I’d offer a word of encouragement to designers. Be true to yourself. Be true to your talents and abilities. Don’t sell yourself short, don’t trade your ethics for the possibility of a small payout.
November 24, 2014
There’s a very popular topic making its rounds lately in open source communities. The concept of burnout. This idea can be roughly summed up as an individual spending too much of their time contributing voluntarily to a community and quickly becoming tired and leaving the community. Unfortunately this does happen and is a very real problem in volunteer-driven communities. If you’re interested in reading more on this then I suggest this post which covers the topic very well. But I want to write briefly on a different aspect. I want to talk about an aspect which might not be as quickly considered and times when there may be a mislabelling of a situation. Let’s talk about what is not burnout.
Burnout is not a catch-all excuse
Unfortunately, burnout is not always the reason for a volunteer stepping away or shifting focus. Sometimes people tend to use burnout as an excuse for more serious problem. What I mean when I say more serious problem? Simple, sometimes when people are leaving a community they are leaving for other reasons besides being burnt out. Maybe they have an interest in something different, maybe they want to focus their time more efficiently, or maybe there is a deeper problem within the community which is keeping them contributing as they would like to. All of these are examples where burnout is not really the cause for change but something else, something deeper, is the real problem and should be uncovered.
The danger of mislabeling burnout
The community suffers when someone mislabels an individual leaving a community as the result of burnout if in fact it’s another reason. By failing to address the real reason for individuals leaving the community there is no opportunity for change. Without change the problem will repeat itself with new volunteers for new contributors. The vicious cycle continues. This is obviously extremely dangerous to a community. If we are unable to correctly diagnose problems within the community and instead resort to mislabeling them as burnout, or the fault of the volunteer rather than the community, the health of the community will be affected.
People make up a community and if those people aren’t perfect, neither are their communities.
If we want to ensure that we are not mislabeling problems within the community then we need to be very careful when we use the term burnout. So how do we prevent mislabeling a problem? By listening. If we listen to those individuals leaving a community, if we ask them for the reasons why they’re leaving, and if we hear their answer then we can ensure that we label the problem correctly. It may very well be that an individual is leaving because they are truly burnt out. If that is the case then following some of the advice given in the other blog posts such as the one I mentioned earlier is very applicable. However if we listen to their replies and we can see they are not burnt out but instead there are other issues, problems, or concerns that these need to be addressed and labeled correctly.
When a community is strong enough to diagnose problems, to label them correctly, and take action as a result that community will thrive. The community which listens will thrive. Yes, burnout is a very real issue particularly in open source or volunteer communities. But let’s be careful not to label every individual which leaves the community as being burnt out.
November 10, 2014
Leaving is Ok
This post began as a much shorter piece I wrote but decided it was worthy of expanding on and writing a bit more formally in my long format posts. If you’ve already read this on that blog then you can skim this and move on. If you are still here I want to share with you some thoughts on the concept of decisions, departures and responses.
I was faced recently with a few incidents where I was able to witness some hard decision making and some difficult choices by some good friends of mine. I was able to witness the difficulties and emotional struggles they had to face both with themselves and with the task of sharing with others. It was eye-opening and striking. I saw the courage it required and the personal turmoil they faced as well as the reactions they received from others. I was moved by the situation and struck with a realization which I feel compelled to share.
The Wrong Response
The immediate response I saw was a begging and a pleading for the person not to leave. There was an expression of deep sadness and deeper regret followed by a strong emphasis on forcing them to remain where they were. This response is absolutely, totally, and completely wrong. This places the focus on the person doing the begging. This demonstrates a completely selfish response. No longer do we care what is best for the person who has had to make the hard decision to leave but instead the focus is on how this departure affects them. How incredibly improper. The decision to leave is most often not taken lightly. Many hours of careful thought and hard emotional moments have been faced. These individuals have weighed their options and determined what they feel is the best path for their life. They are looking to grow, to improve and to make a better future for themselves and their family. This means sometimes the hard decision has to be made.
After reaching a conclusion they finally share their decision with those they would consider their friends, their family. If they are met with this immediate and overwhelming emotional plea to stay this puts an incredible sense of guilt and false obligations on them. They feel as though they are hurting someone else for making the decision they have spent so long deliberating over. What an incredible disservice. How completely inappropriate and selfish to imply this hard decision is wrong.
The Thoughtless Response
If I were to step even a bit further I’d dare to say this over-exaggerated begging and pleading is somewhat forced and almost an immediate thoughtless response. Again the focus is not correct. This does not show support or encouragement to the decision-maker and it most certainly does not come across as heartfelt. Lives changes, people change, goals and opportunities effect each person in unique and different ways. Each individual has a unique path to take and must choose the path most appropriate for their personal well-being and the well-being of their families. The false over-the-top emotional pleas to stay come across as disingenuous and lacking heart and support.
Of course I would be foolish to ignore the leaving and departing over hurt feelings, or personal wrongs. In those cases there is absolutely an opportunity to restore a trust in a community or job and to attempt to right a wrong. Never twist what I am saying out of context. I am referring to those instances when an individual has labored over a decision and chosen a path which differs from the community or the company where they currently reside. They make this decision not as a result of any wrongdoing but over a genuine belief they must make a change for their own personal and professional growth.
The Right Response
Finally I would like to share what I believe is the proper and right response. It’s quite simple and can be summed up in a single word. Appreciation. I’ve written on the topic of appreciation a number of times recently (here and here and others) and feel strongly that this is something almost every community, company, and organization would benefit from doing more often. Of course we will miss them when they go. Yes they will leave a void. Absolutely and without a doubt we thank them for their tremendous time of service. They have given their time and their energy and their life to a cause we share and their impact is often immeasurable. We should be genuine and profuse in our expression of appreciation! We should never, ever, slip into the forced, and faked begging them to not leave and guilt them for the decision they felt best for their personal life. We are blessed by the time we have shared and our friendship extends beyond a community, beyond an occupation. Friendships and families are anchored in much more than code, or work, or any other trivial shared interactions. These continue regardless. This is the heart of the matter. True friendships extend beyond these constraints.
We should always be sure they are not leaving under negative situations and ensure that they are doing what they want to do. That is our duty to them as a friend or even deeper a family member. Ultimately, we should care for them. We should hope for the best for them. We should encourage them to be successful. I would encourage you to believe that leaving is ok. When that inevitable time comes and a friend or family member make the hard decision they feel in their heart is best remember this – Genuine, heartfelt appreciation is the only necessary response.
October 27, 2014
The Importance of Appreciation
A Personal Experience
I’ll start this post with a personal story. I’m fairly certain I’m not alone in this and so I think I will merely share my experiences of a problem many others face. I’m a long-standing United airlines flyer. As my travel requirements picked up significantly so did my trips with United. I was pleasantly surprised to receive drink vouchers when I reached the Gold status level. I was equally surprised to receive another batch when I reached Platinum. When I reached the top tier status Premier 1K, United took the time to send me a note thanking me for my loyalty and a cheap gold hand wrap for my carryon luggage. The little piece of fabric probably cost them a dollar or less but the impact was huge.
Perhaps even more important was the fact that I was not delayed, bumped, or left behind on a single flight the entire year. Every single trip was executed without incident. That settled it – I decided to book as many of my trips for 2014 on United as possible. Even when those bookings meant a bit more of a nuisance to me and my schedule I was willing to do that because of my experiences with United.
Much to my chagrin 2014 has been fraught with delays, missed flights, bumped flights, and a host of other issues. I’ve had more inconveniences, missed conferences, and delays then I thought possible. Now granted there are things outside of United’s control…like the weather. But more than 75% of the problems were in no way related to weather. United seemed to be short-staffed, short-planed, and just in general unable to meet the demand.
And let me tell you there’s nothing worse than finding out that you’ll actually be getting home at 2am instead of 6pm. That phone call to home is not a fun one to make.
The Rest of the Story
But this is only half the story. Unfortunately it seems United has misunderstood the very basic concept of new vs returning customers. I have once again flown an extraordinary number of miles with United and have achieved the various status levels same as the previous year. I’ve done so quicker and with greater overall ticket price than previous as well. There is however, one major difference. I’ve not received a single email from United, not a single letter, not a single voucher.
Honestly I couldn’t care less about a silly letter, a coupon voucher or a handle wrap. But what I do care about is the customer service. The recognition for my loyalty. It wouldn’t have been that hard to make me feel special. And it certainly wouldn’t have cost United much at all (maybe a postage stamp). But instead because I currently hold a status level they have neglected to notice my current travels as I once again achieved that status. It’s the age old problem with keeping current customers happy or winning new ones.
I’ve mentioned it time and again both on my blog and on twitter. Saying thank you, showing appreciation is so easy, so inexpensive, and yet so powerful. There’s no way to describe the feeling a genuine heartfelt word of appreciation can give someone.
The Importance of Appreciation
I am sure I’m not alone in noticing United’s treatment and unfortunately for United, many others like me probably begin to look elsewhere. When recognition and appreciation fails then loyalty falters. I think this is the key point to take away. Sure the debate can wage on whether its easier to get a new customer or retain an existing one. But at the end of the day what matters is if a company recognizes and appreciates those customers who demonstrate loyalty to their brand. If a company fails to acknowledge loyal customers they will soon be left without them.
Lesson to Learn
What does all this mean? It means for one thing, United better figure out what they are doing or they’ll lose existing customers faster than they can win new ones. But more importantly it means there’s a valuable lesson we can learn from this example. We should each be sure to take the time to appreciate loyalty. Again, it doesn’t take much. Just say thank you. Write a note, send a tweet. Find some way to express gratitude. Appreciate and recognize the efforts your customers have made and you’ll find you have a customer for life.
October 17, 2014
A UI Treat from Yosemite
This may sound silly. In fact you may laugh at this but I have to share it anyways. Recently as some of you know I had to send my laptop back to Apple because the video card in it went kaput. It just quit working and was making the computer constantly shutdown. When I got it back I found out they had completely wiped the hard drive. I was going to have to start completely over setting up my environment. Oh the pain. All the work I’d done configuring multiple versions of PHP and my local development tools. Oh well, the screen looked amazing and the video card was working.
I decided as long as I was having to start fresh I might as well download the latest release of OS X and play around with Yosemite. I had previously watched the keynote when Yosemite was announced and I must admit I wasn’t taken by anything spectacular. Nothing made me catch my breath or decide I had to have it (obviously as I hadn’t downloaded it before). But now that I was starting fresh I had nothing to lose. So off I went to download the beta.
The Search Command
While I still don’t see huge change or differences which make me really amazed there are a few things which I have found I absolutely love. I’ll share two very quickly. First for those that know how I work I am always on the keyboard. I rarely use the mouse and try to do as much as I can without moving my hands from my keyboard. As a result the CMD+Space shortcut to launch search and then type the program I want to use is a huge favorite of mine. It’s almost second nature to hit the key combo and look to the top right to begin typing the app name. Well, with Yosemite they’ve brought this feature front and center – literally. Now I can look in much larger font and much more detail as I enter the program name. It’s pretty cool.
The Context Menu
The second feature is much more subtle. It’s incorporated in several different layouts but I notice it most when using the right click. I think they’ve called it the frosted glass look. It’s subtle, but I love it. Something about the semi-transparent nature of the context menu just feels right. I don’t know quite how to describe it or quite what I would say is the reason for my love. But I enjoy it. Now I admit I don’t see it much because I use the keyboard mostly (refer to the point above), but when I do find myself using it I like it.
Yosemite and You
If you have the opportunity to try Yosemite take a look at these features and see for yourself. Sometimes the little UI treats are the most important. I think that’s a great lesson to take away. It’s not the next game changing operating system and it doesn’t do something completely revolutionary, but the little things matter. The little touches which make something stand apart are critically important. Remember this as you’re working on your next project. What is your frosted glass moment? What can you add to make your users’ experience unlike anything else?
October 14, 2014
I was inspired to write this post by a good friend of mine who reminded me they look for something inspirational to read or watch every evening before calling it a night. This post is for you. Wherever you are and whenever you are reading this. You matter.
This isn’t like my normal posts and it’s certainly far more personal than my usual. Read it anyways. I don’t know what you are busy working on. I don’t know what makes you tick or what motivates you to do the things you do. Your life and your choices are your own based on your life experiences and your connections with others. One thing I do know. I know you matter. I’ve spoken on this topic numerous times at various conferences. In fact I just recently offered the closing keynote for an event in Bulgaria where I shared this very idea. Each of you matter. You are special. You have talents and abilities unique to you. No one else who has ever lived or will ever live again has the same set of opportunities to change this world like you do.
Your opinion matters.
I’ve heard a quote which says if two people agreed on everything then one of them is not need. I believe we can expand this to more than just two people. I believe in communities you will never fail to find differences of opinions. Some of you have loud voice and like to share your opinions with everyone listening (and everyone not listening); others have a soft voice and your opinion has to be practically dragged from you. And of course there are others who are in the middle somewhere. All of you have an opinion that matters. Don’t be afraid to share it. If you are in the first group I mentioned- don’t be afraid to listen. We don’t all have to agree. The goal is not to make everyone agree with us. The goal is to communicate and grow. Here’s a quote by a good friend of mine…I think it speaks volumes.
Loud voices silence wispers.
— betweenbrain (@betweenbrain) October 13, 2014
Your work matters.
We all have different skills. I could never do some of the things my friends do. I’m amazed at the abilities of others and the things they are capable of. Call it a gift, call it a talent, call it a skill. Whatever you call it. It matters. Your work and what you spend your time doing matters. This is especially true in an open source community. When we’re all working together as volunteers we are contributing our talents to a greater good. We are working together to make something amazing. Just as no one else has your opinion no one else has the same opportunity to do things that you do. Your skills, your talents can do great things and the work you do matters. If you haven’t read my previous post about open source appreciation I suggest you do so now. Because your work matters. And I thank you for it.
Your life matters.
Last point before I leave you. Your life matters. I mean your real life. Not your social profile. What you do and how you choose to spend your time matters. Do so wisely. Don’t lose sight of what is truly important to you. Stop and think about your time and your life. Are you happy with how your days are spent? Are you enjoying your life? Your life matters. Not only to yourself but to others. Your family, your friends, your workplace, your volunteer communities. There are dozens of places where you make a difference. Be sure you’re happy with yourself. Do those things that make you happy and make your life matter.
So as you finish reading I want to thank you. Thank you for reading my blog and for taking the time to connect with me. Each of you that has said gone out of your way to speak with me, to shake my hand, or offer a hug in friendship. Thank you. You matter to me and I wish nothing but the best for you.
Remember, we’re all in this together.
October 8, 2014
Everyone has seen the interactions between individuals on Twitter or Facebook. Sometimes we laugh at them, and sometimes we cringe. There is always the opportunity for conflicts and differences of opinion to surface when talking in a global setting. The very nature of social media is for the purpose of discussions and information sharing. But of course with this sharing comes disagreements. We are all unique individuals with different backgrounds, life experiences, and outlooks. While there is nothing wrong with different views it does lead inevitably to debating and discussing those differences.
Fighting is the next step in the debate/discussion cycle. When people discuss their differences we involuntarily try to “win” the other person over to our point of view. When that doesn’t happen we tend to become antagonistic or even take the debate personal. Once things become personal it quickly deteriorates to a social fight. Social fighting is bad for many reasons. Here are three popular reasons why social fighting is a bad idea.
1. Social Fighting Involves Everyone
Unlike in person meetings when disagreements and debates (which lead to fights) occur, when you are holding these conversations online on a public and wide open social network you are allowing everyone to sit around and observe. No longer is this a private matter between two people but it turns into a public stage with the world watching. I’ve seen times when this public stage and global focus has been an extremely positive thing in helping the debate to reach a right conclusion; but I’d venture to say the majority of the time the arguments would be better served to be carried out in private. There’s no need to involve the world in your argument about the proper way to recycle pizza boxes. (I’m being facetious of course…we all know the right way is to throw them in the compost pile).
Too many private battles begin with an innocuous tweet or status update which leads to a disagreement which leads to mud-slinging which leads to a bare-fist twitter brawl. Because a conversation can degenerate so quickly from something so small as a tweet it can be difficult to monitor and nip it in the bud before it turns into something bigger. But that doesn’t mean we shouldn’t try to be aware of it.
2. Social Fighting Is Permanent
There are times when you watch a fight happen live on social media. You sit on the edge of your seat (or maybe through spread fingers with hand over face) and you hold your breath as you wait for the next message to be posted. You probably keep up with the conversation throughout the day and then when it reaches a conclusion you move on with what you were doing. Sometimes you may never think about the subject again. If you were one of the people involved in the debate you may spend a bit more time thinking over your responses and the replies you received. Perhaps you will even reflect back on it the next day as you decide if you were correct in your posts. But eventually you’ll forget the debate even happened. You’ll also go on with your life. You may even have subsequent conversations with the person you were fighting with and find that you both made mistakes and reconcile with each other. You may very well meet them in person at some point and talk out your differences. But the problem with social fighting is that the fight is now permanently recorded.
The fight which in real-life may have blown over in a 30 minute or hour long argument and then left behind now sits dormant on the internet. Ready to be uncovered by someone new at any point in time. Forever. Your words written in haste or written incorrectly are forever recorded to be found and read and analyzed by the world. This is very different from other situations and yet another reason why social fighting is a very bad practice. Don’t make your negative thoughtless comments and arguments be what you are forever remembered by online.
3. Social Fighting Wastes Time
I don’t know about anyone else but interacting on social media is an extremely time intensive process. To do it well and do it right you have to listen. You have to pay attention to what’s being said and what’s being shared and then you have to respond to each message. While in person this is the single focus of your efforts and you work through your debate and then walk away (as we looked at previously); when you debate online and in social media you end up trying to multi-task. I would wager that most of us do that rather ineffectively. We make our comment and then we return to our other tasks on our task list but all the while keep one eye trained on the top right corner of our screen waiting for the notification of a reply. Our minds are not engaged in what we are doing but rather constantly distracted waiting for the imminent reply. This completely ruins our ability to concentrate on other tasks and as a result slows our progress. Social fighting is usually about something we’re passionate about. As a result our passion drives our thinking and our thinking affects our output.
While you may think you’re managing your time well I would be bold and say you could be managing it better. The constant distractions and the disruption to your thinking which occurs each time you jump back into a social fight slows the progress you would otherwise make. Never forget the person picking fights, looking for ways to stir up conflict, or just being contrary in their messages usually is the one with the most amount of time to spend.
It seems to make common sense that social fighting is not a good thing but sometimes we can forget about it when we’re in the heat of the moment. Hopefully these three points will stick your mind and the next time you find yourself enthralled in a 140 character war of words you will think of them and change your approach.
If you’re able speak to people one-on-one. Take the time to make a personal connection and make the effort to communicate effectively. Yes, differences occur and yes there are times when arguments will erupt-but social media is not always the place to hold them. Make your interactions meaningful. Make your social media meaningful.
September 30, 2014
Open Source Appreciation
When you’re volunteering in an open source community most of the time you understand that you are giving your time and talents without any expectation of payment. Monetary payment. You do the work because you see the value in the community and you see the opportunity to get involved, contribute your skills, and make a difference. You don’t do it for the praise and you don’t do it for the personal gain. You’re volunteering.
However there is an opportunity for the community here to do something remarkable. Open source communities have the chance to appreciate you as the volunteer. There is an opportunity to offer heartfelt thank you and appreciation for the donation of your most valuable asset – your time.
The Greatest Community
The best open source communities understand that their volunteers are worth far more than a check from a venture capitalist firm or a sponsor payment seeking some specific return on investment. These outstanding communities place their worth and their value in their volunteers. Those individuals who are so committed and dedicated to the community they give the one resource they can never get back. They give their time. When these superior communities understand this principle it is reflected in their attitude, in their behavior, and in their treatment of their contributors and volunteers. They demonstrate excellent appreciation.
How can this appreciation be demonstrated by an organization or community where finances and money are not the motivating or driving factor? What are some ways in which appreciation can be shown. Great communities have already figured this out and the put these ways into practice on a daily basis. Here are a few examples.
A Public Acknowledgement
There are several great examples of this idea of public acknowledgement. I’ll give only one which I found recently and thought it to be an exceptional one. If anyone is familiar with Mozilla Firefox they have done some amazing things to publicly appreciate their volunteers. One of those is the San Francisco Monument they’ve constructed. It’s a fantastic example of just one way in which Mozilla has very publicly demonstrated appreciation for their volunteers.
Of course it doesn’t take a marble pillar to publicly acknowledge the hard work and effort of volunteers. Sometimes all it takes is a blog post. Finding ways to publicly thank those individuals giving their time is a fantastic way to demonstrate appreciation.
A Personal Note
You don’t always have to be public in your appreciation. Some communities send a note to active volunteers thanking them personally for their work. This is almost the reciprocal action of the public acknowledgement. Rather than publicly thanking someone you can do it privately.
I’ve seen some examples of this which are truly awesome. A handwritten letter in the mail. Yes, that’s right an actual snail-mail post thanking someone for their efforts. It doesn’t cost more than a stamp, an envelope and a little time. But the value is immense. If you’ve ever gotten a personalized note you know what I’m talking about. It’s a great feeling to feel appreciated and valued. It doesn’t cost much to personally thank someone.
I was going to list several more ways but I erased my points because I want to leave you with these two thoughts. Public and Private appreciation. A personal connection. This is what it all comes down to. The ability to connect with each other not just as a community of volunteers working on a project but as people interacting and growing.
Our communities are a place where relationships can thrive. Lifelong friendships can be made and personal growth is encouraged. The truly great open source communities realize without volunteers they have no future. These communities show this realization through their personal relationships and thoughtful appreciation of each volunteer. At the end of the day its the relationships which matter.
In our communities the focus should be the person not the project .
September 25, 2014
Your Experiences are Worthless
We all have things happen in our lives which affect our outlook. We have interactions with family, with friends, with clients, with employees. All of these experiences make up our past. They make up what we know and understand about life. But without a few important things those experiences are worthless. We have an opportunity. We have the power to improve our lives and our businesses. And we have the option to make our experiences count for something or to be worthless.
Here’s the important things to keep in mind to make sure your experiences impact your life and your work in the right way. These are the ways you make your experience not worthless.
1. Learn from the past
If you never stop to reflect on past experiences, if you never analyze how a particular situation unfolded and the outcome was reached then your experience is worthless. You must do more than just collect experiences in life. You have to learn from them. You have to grow from them. Learning from past experiences means stopping and looking at what was done right and what was done wrong. Force yourself to work through the activities and how they impacted the outcome. Without the ability to learn from our past experiences they serve no purpose.
2. Change the present
Once you’ve learned from the past experiences you must use what you learn to change or improve your present. I don’t mean that every experience should result in you doing something different on a daily basis. I’m not suggesting you change your daily ritual or that you walk away from every experience with a mile-long list of changes you need to make in your present situations. In fact, sometimes, the best thing you can learn from a past experience is the change to make no change. Meaning instead of changing you stop and stay constant. (Ironically that is a change from previous behavior) If you don’t take those lessons you’ve learned. If you don’t capitalize on the experiences you have and use them to change the present then they are worthless.
I’m reminded of the quote by Albert Einstein.
3. Shape the future
So now you see where I’m going. We looked at how experiences are worthless if we don’t learn from them. Next we saw how those same experiences are without much value if we don’t use them and the lessons we learned to change our present situation. Lastly, we see that if we don’t use those experiences to shape our future they are worthless. Those experiences, those life lessons you’ve learned and have used to change your current situation must be used as a guide to help shape your future goals and aspirations. If you know how something happens because you have experience with that particular situation then you can not only understand the outcome but you can shape it. You must do something with your experiences and your past. You must use your experiences to shape your future, if you don’t then they hold no value.
Three ways to make sure your experiences are not worthless. It’s not necessarily hard. But like so many things in life it takes thought, it takes patience and it takes perseverance. We must make our experiences valuable. They are one of the most valuable assets we have and possibly the one thing of true worth we have that no one else ever has had. Our daily lives and existence, our minute by minute experiences are unique to us and we have the opportunity to decide what we do with them. Don’t make one of your greatest resources worthless. Use your experiences to learn, change, and shape what you do.
September 23, 2014
Use Marketing Automation and Never Work Again!
What is Marketing Automation?
To some this is a familiar term and to others its a bit intimidating. Let’s look first at what marketing automation is and then we’ll look at a few more related topics and hopefully give a pretty clear picture about what we’re doing.
Marketing automation is defined by wikipedia as the following:
Marketing automation refers to software platforms and technologies designed for marketing departments and organizations to more effectively market on multiple channels online (such as email, social media, websites, etc.) and automate repetitive tasks.
This is a fairly detailed definition which while it answers the question of what marketing automation is, it could perhaps be simplified somewhat. Marketing automation is powerful software and processes which makes complex and repetitive tasks easy. (That’s pretty simple). It doesn’t mean you don’t work, but it does help with the repetitive and mundane tasks.
So that’s a bit easier but still rather generic. Let’s look quickly at who marketing automation is for and who should be interested in the topic.
Who is Marketing Automation For?
Marketing automation is for every business. Maybe that’s not completely true. Before Mautic was created marketing automation was something only available to large businesses with significant marketing and sales budgets. I’m incredibly excited to be a part of something which is revolutionizing a market and empowering businesses of all sizes. Marketing automation is changing forever. We are building software which everyone can use to save them time, simplify their sales processes, and learn their customers better. Mautic allows you to do everything from better lead nurturing and targeting to social media networking with potential clients. Marketing automation also helps you automate tasks such as email campaigns and much more.
Why Open Source?
So if there are such powerful software platforms already providing these services why bother with creating another one? If you’ve followed my writing at all then you know I’m passionate about open source. I believe strongly in the power of open source and I have volunteered hundreds (thousands) of hours to open source and its promotion. I truly believe open source makes our world a better place. Whether you’re talking about a content management system to power your website or software tools to give you the business tools you need to be successful. Open source now provides an option. Read my previous articles about open source and community if you need more reasons or specifics for why open source is important.
What is So Special?
So now we know what marketing automation is and we also know why open source as a software type is important we can now look at what makes Mautic different and special. As I said previously marketing automation was not available for everyone. Marketing automation used to cost thousands of dollars a month and was simply unaffordable for many for most small and medium sized businesses. Not any more. Mautic is special because it completely disrupts everything. Mautic is providing the powerful tools of marketing automation to businesses of all sizes at a cost everyone can afford. Free. This open source community is focused on empowering every business and giving everyone equal opportunities for success. That’s revolutionary. And as an open source community it’s exciting.
When Is It Available?
Ok so now some of you may be as excited as I am; at least I hope you are. Because Mautic is all about equality. Breaking down the barriers which previously kept powerful software away from the every-day businesses. Open source is truly changing our world. I am as eager and anxious as the next person to see Mautic released and am hardly sleeping as we work to release the beta software. Dates are shifting constantly (as always with software development) but we have a strong expectation that we’ll be able to release an alpha version to those businesses which have signed up to be early testers within the next several weeks.
You can check back on my blog as I will be posting more information about what is to come in the weeks to follow and if you have any specific questions or ideas please let me know – I would love to hear from you! We have great things ahead. And I truly believe we are all in this together – Let’s work together to do revolutionary things!
September 19, 2014
No, I don’t mean physically stretch (though that’s important also!) I mean mentally, personally, internally stretch yourself. Life can be easy at times. Following the same routine and the same day-to-day activities and performing the same job with consistency can be easy. Easy in the sense that you get comfortable with the schedule. You will find yourself beginning to relax a bit in the every day. Sure, maybe you shake things up by eating dinner a bit later on Friday night or you order something slightly different from that little lunch place you visit every Wednesday. These are minor little differences in an otherwise same routine.
This relaxed and casual life can lead to complacency. You get comfortable and you neglect to improve yourself. You quit striving for better things or you stop worrying about trying to accomplish your goals. Maybe you think you’ll get to it tomorrow but telling yourself you’ll get to it the next day soon becomes just part of the routine. Eventually you’ll even get tired of saying the words and you’ll just ignore it all together. I encourage you to stretch yourself. Here’s what I mean.
Do something different
I don’t mean different like a new lunch choice; I mean different like a different ethnicity for your lunch choice. Go to a place you’ve never been and perhaps would never think to go. That’s different. Stretch yourself to look beyond what’s comfortable and what you are familiar with and ry something different. Maybe you have an incredibly sensitive stomach and different foods are simply impossible. Or maybe you don’t have anything close you can try. Find something else you can do different. Take a different way to work and don’t use your phone to give you the directions. Find your way. There was a time not too long ago when we had to use little GPS units created specifically to help us (remember those large blocks with 2 1/2 inch screens?). And it wasn’t too long before that when we didn’t have anything but those giant paper maps (which I could never really fold back the right way). There’s a sense of excitement with trying to find the way to get somewhere without following the same, old, beaten path. Do something different.
Learn from someone else
Learning from someone else means finding someone different from you. Don’t seek our your coworker who you’ve known for a half-dozen years and has shared every detail of their life with you already. Seek out someone else. It doesn’t have to be a deep and lasting connection. Maybe you’re incredibly shy and you don’t like to speak to others. I get that. I’m a bit of an introvert too. You can learn from someone else without even engaging in conversation with them (though I encourage you to do so as it’s definitely the best). You can also just listen to others talk, or watch how they interact. You can learn from how they perform a task or interact with others. Everyone is unique and has different life experiences. The stories they have and the memories they have made in their life time are vastly different from your own. And you can stretch yourself by learning from them. Push your own thinking and your own views and opinions by seeing life through someone else’s eyes.
Show unexpected kindness
The keyword in this last idea is unexpected. It’s easy to show kindness to someone who is our friend or family. We naturally want to please them and be kind to them. But unexpected kindness means seeking out someone that does not expect your kindness. Be generous with your time. Maybe even generous with your money. Showing unexpected kindness stretches you in several ways. In fact, it helps you as you do something different or learn from someone else. In addition it causes you to stretch yourself with what you would normally do or how you would normally spend your time or money. And trust me-the feeling you’ll receive by showing kindness to someone is unmatched. The challenge exists of course to find someone to whom to be kind. This challenge leaves you looking. Searching for someone to demonstrate a random act of kindness towards…and this will stretch you. It will awaken you from the steady stupor we so easily sink into from the routine of life.
There are an almost innumerable list of benefits you can receive by stretching yourself. You can improve your attitude. You can improve your life. More importantly you can improve your world. Taking the time to wake up, smell the coffee, and stretch will make you enjoy life more. And who knows. You may change someone’s day, or even their life through what you do.
September 18, 2014
Programmers are Creative
Programmers are often not the first profession which comes to mind when considering creativity. Everyone likes to mention the designers, and the front-end UI/UX people when they talk about being creative. And while those roles are certainly the most visible and visually creative roles there is a certain level of creativity involved in programming as well. And so for all the programmers out there – here are 3 reasons why programmers are creative.
1. Programmers Solve Problems Creatively
I know, you were expecting this for the first point weren’t you. This is what we always tend to laugh about. Programmers doing whatever to “make it work”. Or the famous code comment which says, “Don’t touch this, it works.” Of course we consider this to be a bad form of creative programming and yet it hints at something deeper. Obviously there must be some level of creativity. I’ve seen some examples of code which look beautiful on the outside and function but when I dig deeper into the code I’m amazed. The creative “workarounds” (that’s an affectionate and oft-used name for this type of coding) which are in place sometimes leave me speechless.
But there are plenty of great examples of solving problems creatively. Programmers have a unique way of analyzing and solving problems that others would leave others completely stumped. They are able to analyze and determine alternate methods for getting the results they need and often times won’t take no for an answer. It’s highly creative.
2. Programmers See Code As Beautiful
One of my favorite movies of all times is the Matrix. It’s a classic movie and one which holds a special place in my heart. I remember with great fondness watching the coders stare at the screen and “see” the world. They no longer saw the code but instead they saw the world as it existed around them. I loved that idea. I have always wanted to be like that and while there is a level of science fiction involved I have also seen some coders who exhibit a creative and unique ability to see what the code does. These programmers see the very lines of code as beautiful and through the code they see what the outcome is. They are able to experience the end result, what the application will do without ever seeing a user interface.
When a programmer is able to look at code and view the finished product through just the code I believe they see the code as beautiful. Good well-written code is indeed beautiful. I will often tell people the work we do at WebSpark is more than just make great applications. We make beautiful code. We see beauty in the code. And that makes us creative.
3. Programmers Are Uniquely Gifted
Code engineers are accustomed to several aspects of their work which make them unique. As you’ll find with other more well-known creative types – good creatives cannot be rushed. They work at the right speed to accomplish what everyone else will see as creative genius. They have a vision in their mind and they work towards that vision in a manner which suits them.
Secondly programmers focus on a variety of aspects of a system which to others may seem disparate and unrelated and yet in the end tie back in together perfectly to create the final product. I’ve watched firsthand as expert programmers will create a bit of code in one file, navigate three folders away to an unrelated file add additional code and then 30 minutes later will write an additional function which fits perfectly between the two and makes everything work together a cohesive whole.
Lastly, coders as other creative types work crazy hours (most of the time). You’ll find them up at all hours of day or night feverishly working on their ideas or projects. Sometimes its deadlines, but other times they do it because they love what they are doing. They are passionate about their work and work with a frantic excitement.
There’s no doubt in my mind that programmers are creative and they demonstrate this creativity through a number of ways. I’ve picked out just three (five if you count the last point as three separate ones). The next time you find yourself questioning a programmer’s ability to be creative stop yourself and think about this post. It’s possible you’ll find they are just as creative as another.
September 17, 2014
Quicker Decision Making
Everyone has to make decisions. Some of those decisions are big, life-altering types of choices. Some decisions are mini half-second opinions. Most of us make those micro decisions quickly and without much thought. But when it comes to the large decisions we hesitate. If we’re honest with ourselves sometimes we wait too long. It doesn’t really matter whether we know the right choice already, we still wait. Sometimes this comes from a fear of failure, but sometimes it comes simply because we don’t like the idea of change.
Wait! I’m not going down that rabbit trail. I am talking today about a different aspect of decision making. Making the hard business decisions. Doing what you know should be done but have waited to do. Procrastinating on decisions already determined. Got it? I’m not talking about rushing into decisions which should be discussed, reviewed, and debated with team members. These are the decisions you’ve already made but don’t implement.
Delaying the inevitable
I’d like to look at only those decisions where you already know the answer or the choice you need to make. To be clear – I’m not debating the question, doubt, or uncertainty of whether or not a decision should be made or a change should be undertaken. I’ve written about that in other posts. Today is looking specifically at those times when you know the right decision but you hesitate in making it. You are only delaying the inevitable. Here’s three ways to help make quicker decisions.
1. Listen to Others
I’m writing this post directly from personal experience. Recently I had to implement a new software solution in the office. We needed just the right system. There were several available options we found on GitHub (because we love open source). I was evaluating them and almost immediately there were some questions raised in regards to one solution. It was written in a different language and required a unique server setup. But I liked it. It looked “pretty” and it seemed like it would do what I wanted. Almost 16 work hours later..I gave up on it. This particular solution just wasn’t ready and if I had listened more to others I might not have tried to make it work as long as I did.
2. Watch the Clock
I touched briefly on this point in the previous paragraph. As you are working through your choices and following your first-choice decision keep an eye on the time you’ve spent. Don’t forget that if you have multiple people working with you on your project then you have to account for all those hours. Yesterday it was two of us working through my first choice and therefore the time spent was doubled. Keeping a close eye on the amount of time spent as you pursue your choice will help you as you determine whether or not you should continue. Quicker decision making means being ready to pull the plug on something and move on if your time involved becomes too great. Be decisive. Be ultra-controlling of your time.
3. Learn from Past
This is a quote by Albert Einstein which I absolutely love. Doing the same thing over and over and expecting different results. We laugh and believe we would never be that way but the reality is too often in every day decision making we do this very thing. It’s insane. We believe we have the answers and we forget the lessons we’ve learned in the past. We can help make our decision making better and faster if we learn from our past.
I believe I am making quicker decisions than I used to make. Of course remember I am referring to those decisions where I already know I need to make the decision but procrastinate in actually doing so. It’s a learning process. It’s probably a never-ending learning process. More (and better) experiences help to re-enforce a constant observance of how to improve decision making processes.
By the way, we did scrap my first choice and move to a better solution. The results have been fantastic. The new tool ends up being far far better. I only wish I had been even quicker in my decision making and done what I new would be better earlier; but oh well, live and learn.
Keep this in mind. You only have so much time. Your life is limited and your time is the most valuable asset you have. Don’t squander it. Especially when you already know the decision which needs to be made.