In this episode, I go over how to design a workflow feature for an entity in a software application. It’s important to separate states from state transitions.
Here are the show notes
- Episode 6 the Azure DevOps Podcast published w/ Edward Thomson
- Register for the Azure DevOps User Group presentation by Eric Hexter
My goal is to teach, inform, and have a little fun. But I want this to provide value for programmers shipping custom software using Microsoft tools. Here is the first episode of the Palermo Pamphlet, which I hope will be a valuable resource to you.
Here are the show notes
- Episode 5 of the Azure DevOps Podcast published w/ Dave McKinstry
- Blog on why I started the Azure DevOps Podcast
- Martin Woodward’s presentation on Azure DevOps Services at the .Net Conf 2018
- Redgate ReadyRoll’s rebranding to SQL Change Automation – and how everyone needs AUTOMATED sql schema migrations
- My upcoming presentation to AzureAustin
- Mads Kristensen’s tip on enabling active item tracking in Visual Studio
- Obtaining a build server (when choosing hosted build agents)
- Cloning the source
- Package restores
- Copying/archiving build artifacts
- Use our own Azure VMs as the build agents (running multiple agents on a single VM) – always available at a moments notice
- Let Azure Pipelines be a little less aggressive with cleaning source and instead have the build script delete the build directories at the beginning – removes need for a full clone and can just be a pull (works most of the time and requires probably a monthly purge for a clean clone, but saves SOOO much time)
- a) retain cloned working tree so that the previous package restore is used for subsequent builds or b) check in packages so that package restores are not necessary for every build
- Once builds are working and reliable, only archive the build artifacts that are directly used by the release pipeline (typically the nuget packages that house the application components)
I wanted to share a little bit of my reasoning for starting the Azure DevOps Podcast. The above video is about 4 minutes long. Please take a look. Feel free to play at double speed. The gist of it is I like seeing developers having fun. Busted releases are not fun. All-weekend deployments are not fun. New things breaking when you make a code change are not fun. And software development can be SO MUCH FUN! I’ve spent 21 years so far as a professional programmer – not counting the toy apps and websites outside that time. I still love it, and I would like to share that joy with anyone I can.
Here are some links I mention in the video:
You may just be learning about the iterative, emergent architecture method known as “4+1”. You can read the original paper here. Written by Philippe Kruchten in 1995, this 15-page paper lays out the views that are needed in order to communicate the architectural elements of a software system. Coursera has a good summary video in their course catalog here.
Architects in other professions go through similar thought processes as software architects, so it can be useful to borrow the graphical outputs that these other architects generate as illustrations of the decisions made while finding a solution suitable to the problem.
Continuous Delivery is an umbrella terms used to describe the process for an automated system that takes changes to the source and configuration of a system and flows those changes through a process and ultimately to a running production system while catching quality issues. Jez Humble maintains a very useful site dedicated to continuous delivery here.
I recently presented a sample 4+1 architecture to the Cloud Austin user group. Since I received several requests for the diagram, I’m posting it here. If you have any additional questions, contact me. I’m always happy to help. Additionally, I have a high-resolution PDF of this diagram (ARCH D in size, if you would like to print it on a plotter).
VSTS has fantastic devops-enabling features, but one of the common issues when planning to adopt it is how to plan the large migration of work and project plans from other tools. The good news is that you don’t have to change anything about where you are tracking your work or projects in order to make use of builds, packaging, or automated deployments. If you track your work in Jira, your code in GitHub, then you’ll want to configure VSTS like the following:
If my VSTS does not look like yours, you’ll want to turn on the new navigation features by selecting your profile picture in the top right corner.
With this configuration, you’ll be able to:
- Configure continuous integration builds
- Run unit tests & component-level integration tests
- Package versioned release candidates
- Architect release candidate packages in the onboard Nuget server
- Create releases for a particular build
- Map the progression of pre-production environments as well as production
- Deploy release candidates
- Run full-system tests against deployed instances of your builds
- Trend statistics about your tests
- Integrate static code analysis into your devops pipeline
- Configure and run load tests
Many teams have systems to track projects and existing source code repositories in place. When bringing online devops methods, it may be appropriate to focus the VSTS project on just the capabilities needed at the moment.
Austin Fast 50 Award
Just over a week ago, we were presented with a very big surprise. In the Austin, TX area, we were ranked as the #1 fastest growing small business across the board in any industry. They classify their small business category as one that posts less than $10M in revenue, and we closed out 2015 at $8.7M in revenue. This was the first year we were eligible to submit our numbers as the Austin Business Journal (ABJ) requires a complete 3 years of financials to be completed. From beginning operations on January 7, 2013 through the end of December, 2016, we grew at a erpace that was pretty hard to hold onto at times. I was a bit bummed that our remote employees around North America couldn’t come to the event, but we invited all of our local team to participate. While they give the award to the CEO, this award was for the whole company. Everyone has worked extremely hard, and I am very proud of them. It’s a bit of a delayed award since it recognizes 2013-2015, but anyone who was on board during that period definitely remembers how hectic it was taking on customers and new employees at a high rate. We appreciate the ABJ for this award, and we are encouraged by it. And God has certainly blessed the Clear Measure family of employees and clients.
I also want to thank our 2013 clients. They are largely still with us, as we are a good portion or all of their software engineering core competency. Early in our relationship with these clients, they witnesses and tolerated the environment where we made the sale, mobilized the right team to tackle the problem and align with their organization, and then turned to mobilizing a team for the next client. More than once, a client asked for personal attention from me that was hard to give. I appreciate their patience, and I am so grateful for them for sticking with us. Our business has been built on long-term relationships rather than flash-in-the-pan projects, and our clients are some of the best around.
Honing our focus, driving our purpose
Rather than casting a wide net, I believe in going deep. And it seems business books everywhere talk about finding a market niche and “owning” it. We started with it in 2013, and ever since then, we have learned more about it and have found what works well and what doesn’t. We have used that learning to hone our mission statement.
“Clear Measure is a software engineering firm that brings a competitive advantage to growing companies”
We worked hard to make this statement short but specific. Since the beginning, we have been a software engineering firm. We aren’t a staffing firm. We aren’t a traveling consulting firm. And we don’t describe ourselves as a software development shop. We’ve chosen the words carefully.
We are a company that writes code. We build software. We modernize software. We work in the flexible medium of business automation through computing. Digital record-keeping.
We believe that the best returns on software investment come from the engineering discipline, not from art, where success is in the eye of the beholder. And as much as the craft movement produces great lessons, the demand of our city and the world has already far outstripped the capacity of the available craftsmen in our field. In order to provide predictable results at the necessary capacity, we take an engineering approach to software in order to drive out variability and increase certainty.
This may seem irrelevant, but organizations that provide a professional service are called firms. These organizations are more than just a LLC or Corporation. They are trusted partners with long-term client relationships. They provide necessary high-end services for clients – services that require the workers to be educated, well-trained, and experienced.
Our clients are competing. They come from all industries. Rather than attempt to focus on multiple industries, we let our clients do that, and we focus on providing them with an enterprise-grade core competency in custom software. We have a horizontal focus on our custom software core competency. And we provide that to our clients so that they can gain an advantage when competing in their own industries against other players that have exploited computers and software for their advantage. This include digital record-keeping, automated business operations, and making workers highly efficient, sometimes to the tune of 400%
We don’t solicit enterprises. There. I said it. A critical element in strategy is eliminating options. If we operated every day with infinite options, we would not have an identity at all, and every next client that came along would alter our direction. We have eliminated the enterprise as a target client. While we did do some work for some Fortune 500 companies in the first couple of years, we have chosen to focus ourselves on the companies that are in the middle. They are too big to be called small businesses, but they are not in the Fortune 5000 either. These companies are at a disadvantage in the marketplace amid this computing revolution. They don’t have the resources to invest millions are complete software departments, and they sometimes believe that they must choose a software package or ERP system in order to meet their needs – only to find out that while these systems may be great at basic and common business functions, they do not support the part of the business that is competitive – that is a differentiator in their market. Even with costly customizations, packaged products force business processes to confirm to the lowest common denominator rather than perfectly supporting that part of the business which is the true source of market differentiation. The enterprises know this and have custom software to allow them to execute exactly the way they need to . We level the playing field for growing companies. We bring our clients a core competency in custom software.
Impact of core values on our strategy
Our core values are: . .. . .
- Empowered Employees
- Building Relationships
- Serving Others First
- Trusted Partner
We take them very seriously and weave them into every part of our company. We are also continually improving how we apply them. When it comes to our core values of relationships and trusted partner, these directly impact how we execute our mission. We tell our prospective clients up front that we are not looking for a project, we are looking for a long-term relationship. While this might be risky if the client doesn’t desire the same thing, we believe that transparency will help us select the right clients and will help them properly qualify us. If we aren’t a match, there is no need to try to force it. Additionally, we behave as a true partner, and our desire is to become a trusted partner. This means long term focus. This means an understanding of and focus on operational metrics of the client to ensure a good return on investment is happening. And this means actually being responsible for something. We know of so many companies that will take on a client and assign some staff to that client. But then unfortunately the relationship ends. Obtaining productivity and results from those staff somehow become the responsibility of the client? That makes no sense. We insist on an actual outcome that we can be accountable for. And our company is structured for that type of client. Growing firms need to focus on their own industries, not technology. Healthcare companies need to excel at providing the best care to people, not keeping up with what technologies will best help secure information and automate time-consuming tasks. Whether our role is to provide all of the custom software needs of a client or to service only one department, we identify clients that want the long-term relationship, and we execute with the client’s best interest in mind to earn the role of trusted partner. This has led us at times to reduce or team or suggest that we not be the ones to perform a recommended action. Some might call it leaving money on the table. I call it doing the right thing. And I believe that doing the right thing for the client will build a very long relationship. And that is in our best interest.
New core value: empowered employees
In 2016, we adopted a new core value: empowered employees. On the surface, this might seem like a cliché, but we are very serious about it, and it guides individual behavior as well as the behavior of management. We are organized in a way that puts power in the hands of every individual. We have policies that push decision-making down to each employee. The person working hand-in-hand with the client has the most information about any situation, and is likely to make the best decisions in that context. And we expect them to. In our culture, which is defined by our core values, we are problem solvers. We are solutions people. Not only for our clients but for our own issues internally. We hire incredibly smart people. Not just our engineers and project managers, but across the board. Every single position is filled with an incredibly intelligent human being. And we don’t just want the work of their hands. We want their full brain engaged constantly. Our people know not to come with a problem without options for a solution. Coming with a problem isn’t productive. It’s just complaining. And very pessimistic. Our people come with facts about any issue at hand as well as some great possibilities for handling the issue. And managers know to always ask “how would you like to handle it?”. I do my best to set this example from the top when my management team discusses issues with me.
So while empowerment could seem like a buzzword, it’s the best word we found to describe a workforce which owns their day, owns their world, owns their project, and even owns their emotions. And it is the same best word that describes managers who get out of the way while providing work and challenges perfectly suited to the skills our our team. And it’s the best word to describe the way in which our sales team evaluates prospective clients, just as they evaluate us, so that if we sign a contract, all of our capabilities are set up for success so that we can push our new client forward in their market through the power of custom software applied to their business. The word also applies to me. I don’t always get it right. And in my core values briefing to every new employee who joins the firm, I invite them to confront me, to challenge me, to call me on the carpet if they catch me not being a good example of this core value or any others. For me specifically, my managers know that they can bluntly say “that’s not a good idea. We shouldn’t do that”, and it will be met with an accepting discussion rather than rebuke. And I tend to be an analytic person, so I’ve surprised several people by cutting off the challenge with a “you’re right. I’m convinced”. This company cannot run if anyone has a need to “be right”. When we can let go of the need to be right, it is so much fun to focus on making the client and each other succeed.
Executing our mission
The business world has changed a lot in the past few decades. More and more business are becoming decentralized. Peter Drucker’s prediction of the modern networked organization has already come true and is continuing to become more popular.
FedEx and UPS and other specialized shippers like UShip have changed the way we move goods from one place to another. Why would any new company today start out by building their own logistics or trucking fleet?
Payroll and benefits brokers like Insperity, ADP, and others have changed the way serve our employees through HR and benefits. Why would any new company today start our by building their own complete HR department?
Hosting companies and now cloud hosting providers like Google, Microsoft, and Rackspace have changed the way IT infrastructure is provisioned and leveraged from simple email, file storage, to putting applications online. Why would any new non-tech company today start out by owning servers in a data center facility?
And if you have read this far without clicking off to somewhere else, then perhaps you will tolerate a few paragraphs of marketing-speak.
Software engineering firms like Clear Measure are changing the way growing companies build and manage custom business systems by making world-class custom software accessible to non-enterprise companies. Why would any new non-technology company today start out by building an in-house software team or shackling it’s market differentiating processes to common ERP?
As the world becomes more decentralized and more specialized, we help our clients specialize in their field by bringing a custom software core competency where building one is cost-prohibitive and where individual practitioners are unpredictable. We are the leading custom software partner in central Texas. If you’d like to know more, please contact us.
At Clear Measure, I have my office in the Austin headquarters building. We have space on the 2nd floor and the 4th floor of the building with some separation for different activities. For instance, the kitchen and lounge are separated and sound-insulated from our open-concept work area on one floor. My office opens to this area where the Austin-based engineers and project managers work. I have a door convention that I keep so that people in the office know when I’m available – without having to look at my calendar.
- Closed door – I’m not available – send me a chat or knock if urgent
- Cracked door – I’m busy but can be interrupted briefly
- Open door – No matter what I’m doing, walk in and talk to me, my time is flexible.
When we first moved into this space, I was determined to not have an office. I made a desk for myself in the open area, but I found myself disturbing those around me, and I was a source of traffic, so now I have an office with a round table in it that doubles as a 2-3 person conference table. In this way, I have all of my 1×1 meetings with my direct reports without stealing a conference room.
What I haven’t found a solution for is replicating this with our remote workers. We have Google Hangouts, and Slack, and I have both apps on my iPhone, so I’ll get a notification if anyone contacts me, but there is no visualization on their side that replicates the physical door orientation. How can I communicate to folks not in Austin if I’m available or I can be interrupted. What has happened in practice is that the Austin-based people see the open door and just walk in; whereas, the remote folks tend to assume I’m busy and can’t be bothered. I have much less interaction with the remote people as a result. This saddens me because I want to have a great relationship with everyone.
I’m writing this post as a question because I have to believe that someone has figured out this problem. And my hope is that by sharing I might get some comments that will help me solve the problem. Being the CEO of a 50-person company puts me in the position of being disconnected with the very people I worked hard to recruit. I’m looking for a way to stay connected even as my job responsibilities take me away from my desk quite a bit during the day. Have you, dear reader, seen someone solve this problem?
For those of you who have followed my writings since 2005 when I blogged on www.dotnetjunkies.net, then http://codebetter.com/jeffreypalermo/, and now on my own domain (although I still blog occasionally on CodeBetter), I wanted to give an update on my journey with the not-so-new company, Clear Measure, Inc.
In June, 2016, we will be 3 1/2 years old, and we are around 50 employees right now. Here is a picture from our summer 2015 all-hands party on Lake Travis.We had a great time on the lake on the party boats as well as a couple of wave runners. It’s been a fun journey, and I absolutely love working with the people here. As I look back on the original vision and how we’ve grown so quickly, it’s interesting what went as planned and what has not.
The Original Plan
Mark Stavrou and I started operating on January 7, 2013 in a single office in Austin, TX using the Regus executive suites facility. This enabled us to have Class A office space from day 1. We knew this was important because our intended client profile was to be CIO’s and CEOs of high-tech or related companies. The original vision was to be a software management consulting firm. From extensive previous experience in doing consulting projects, from writing tons of code personally throughout my career, and from running a 30-person consulting company as a business executive, I thought this was a big need. At at the time, I had just finished earning my MBA degree from the Jack Welch Management Institute. I knew that quality software was much less expensive than low quality. Capers Jones really pushes that idea saying, “High-quality software is not expensive. High-quality software is faster and cheaper to build and maintain than low-quality software, from initial development all the way through total cost of ownership” in his Economics of Software Quality book.
I knew that CIOs needed help managing their custom software differently than the company network, the various OTS products and technical support groups. Custom software is a completely different animal, and so many companies lose their shirt with it because the industry has not matured enough to create proven standards like other trades have.
How The First Year Went
My vision fell completely flat. It turned out that there were CIOs and CEOs who needed help with their custom software. They needed consulting. There was a market, but that market was big enough for. . . me. I’m confident that the company could have grown to be as many as 5 consultants, but that wasn’t a compelling outcome. I’m a builder, and if I’m not continually building something, I’m lost. I struggled and struggled to find a way forward growing the company and training a workforce that could provide proper guidance to CIOs about managing their software. In fact, the original vision lasted only a month. During the second week of operating the company, we got our first client. It seemed like a fit. It was a well-established medical transcription company that has a software system that enabled their skilled transcriptionists to translate an audio recording of doctor dictation to an electronic record of the appointment fully integrated back into the hospital’s EMR system (electronic medical record). This integration occurs over the HL7 protocol, which looks a lot line a single line of an old COBOL batch file – fixed width protocol. With this client, we reported directly to the CTO and collaborated with the CEO. They didn’t have any technical staff to speak of because the CTO had written all the code long ago and was retiring. This was a small company, but a lot larger than we were, so we engaged. We helped with overall strategy and even analyzed financial options to get the best return on investment by opening up new revenue streams so that current customers could buy more. A big win was adding a doctor iPhone app to the system so that the doctor could speak the dictation directly into their iPhone and upload the recording by tapping a button. While this company certainly did need direction and strategy consulting, they also needed all the work done. They didn’t have any development staff. They didn’t have any support staff to monitor the system. The CTO had done all this.
So, from this very first client, we were forced to diversify and expand from the narrow vision from when we started. We hired some contractors and got started. We essentially became their complete, outsourced, software engineering department. From that point on, we found a few small projects that were in alignment with our original vision, but that consulting revenue was hardly enough to sustain a company. It also was not scalable beyond my own capabilities. After the first year half year, we completely abandoned the original vision, and you don’t even see mention of it on our website.
Very quickly, we adapted to the demand we were getting from our local market. The second significant client camp in March of 2013. When I say significant, I mean that the first and this next client are still with us to this day. We did plenty of projects
and engagements, but many were small contracts and did not yield a sticky and ongoing relationship. In March of 2013, we contracted with another company’s CEO. This CEO was running a legal services firm. They close out class action lawsuits. For one of the modules, we used some ComponentOne controls, and they even did a case study about it.
This has been a longstanding client, and we’ve seen them grow from 5 employees to larger than we are now. They are with us to this day, and while we started by modernizing their old, insufficient, we have built them several more and are managing and supporting a full software suite that is critical in helping them execute their business model day to day. While we did work directly with the CEO on strategy, this was yet another total outsource customer. We were, and are, the entire, software engineering department. The only other technical people in the picture is a company that manages their office network as some servers in a local data center, on which the system runs.
In May, we landed another, much larger client where we became the entire software engineering team for one of their product lines. While they had software engineers for other products, they had none for this product that hadn’t been aggressively updated. Then in July, we landed another significant client where we were the totally outsourced team. Along with lots of other smaller projects, it looked like we were in a market where companies wanted to get on with their business and rely on us for their custom software needs – both to build, to expand, and to run and support.
At the beginning of 2014, we had 4 consistent customers that were all alike: we report directly to a C/VP-level executive, and we are the entire software engineering capability for them, both to build/change the software as well as to run and support it. We didn’t quite have a 24/7 capability yet, but we pushed through with my phone number itself being on the support list if something bad happened overnight – because our medical transcription client had overnight operations to get doctor transcriptions turned around by the next morning.
At the beginning of 2014, we were expanding rapidly. We blew past $1M in revenue some time in our first year and never looked back, so that was an incredible blessing. 2014 was a year that seemed to validate our new vision, which was to become the complete software engineering department for our clients. We gained another of these clients in Q1 of 2014, and we were expanding rapidly. We hired 20 or so people in 2014 because of the expansion, and we were excited. The company had taken off rapidly. Our four total outsource customers from 2013 were still with us (and are still with us to this day), and we were convinced that this was our market. It turns out, we were mostly right, but not totally.
New Vision Meets Market Reality
We gained many more customers where we reported to a VP. We were excited about this as well, but they were a bit different. When there is no in-house software engineering capability, there is likely not a technical executive except for a CIO or CEO. With the clients were we aren’t in C-level conversations, that means there are other departments with software engineering capabilities. In this case, we did take on several clients (because who turns away a customer), and we made some stumbles. We had our approach of fielding a complete team according to the Fred Brook’s Surgical Team model, and we stubbed our toe a bit with that when applied to clients that already had a software engineering department. With our team structure, we asked business questions first. We wanted to make sure what we were doing would have a proper return on investment. We have kept that concept from the beginning. It’s even in our brand name: Clear Measure. We want to know that what we are doing makes a difference. Because at some point the CFO is going to look at a big number on a financial statement, and that number is going to have Clear Measure’s name written on it. I always want to have concrete value tied to that so that we never get in a situation where a client has wasted money on us. I never want a client to spend money on us. I want them to make money with us.
Several of our new customer were past the business discussions, and the VP just wanted a crack team to knock something out. By this time, we already had a local reputation for having very high-end people. This was and is still true. Top talent is really hard to find and retain. We did some projects for these clients, but we found an off struggle, and we only were able to put our hands on it much later. By the way, these clients are no longer engaged with us, and we have analyzed where we weren’t able to quite make it fit.
It came down to this: they didn’t really want to hire us. They didn’t. They had some really exciting projects to execute – some exciting software to build, but they didn’t want us. The needed us, but they didn’t want to need us. The problem was that their people couldn’t do it on their own. They needed help. So their plan was to us a “vendor” to help them through a spot until they could move forward on their own. If they had more recruiting ability or were able to build a sufficient department, they would be so much happier. But, they did need us, so they hired us. We did good work for them, but the projects ended. In these cases, we were expendable. We were a point in time solution to a problem they wished they didn’t have. We weren’t a business partner. We weren’t a core capability for them. We were an extension or an augmentation/support to a capability they had built internally and were intending to strengthen. To this day, we analyze the balance between a client’s structure and the likelihood that we can make ourselves indispensable so that they are so glad we work for them.
While we were finding clients that would gladly hire us, we found a marked difference in the clients where we report to a technical VP or technical manager. In these cases, the internal manager wishes they didn’t need us, so it’s hard to build a long-term relationship that way. On the other had, we also gained more clients where we had relationships directly with the C-suite. We were able to have business conversations. We were able to analyze ROI, and the client could see that we were part of their ticket to revenue expansion and business success. These clients knew they were investing money, but they were happy they had found us.
Fighting For Our Employees
One of the clients that didn’t wish he needed us turned out to be very abusive. This was very unfortunate, and it was a huge wake-up call for me. I’d never experienced this before. I tend to be a problem solver, and I believe that all problems can be solved. I was wrong here, but it took 6 months too long to learn the lesson. We use that internally as an example of a client where we could not be successful. We could earn lots of revenue and probably hire more people, but ultimately fail. This was posted around social media recently, and I wholeheartedly agree. It starts with employees as the biggest asset. I’ve always believe that in this business. Most of our employees don’t need Clear Measure. They don’t need this job. They need “a” job, but they could get another job quite quickly. Clear Measure needs them. They make Clear Measure. Richard Branson has said “make your employees #1, and they will make your customer feel that they are.” I believe this progression. I, personally, don’t directly do the work for each of our clients day to day. Our people do. If they didn’t do this work, there would be no money coming in. It’s my job to equip, support, and elevate them so that they can do great work for the customer.
In 2015, we stubbed our toe a bit with a customer that was not a good fit. That mistake will not be repeated. In addition, we also figured out the difference in the clients who had internal teams and the clients that didn’t. More importantly, we figured out that this was not that different at all. Rather, it was the client that wanted us and the client that hired us but wished they didn’t have to. This makes all the difference. Another client that was destined to go away, and did, was one where we were unable to get into true business conversations about return on investment and business strategy. We did some great technical work and have plenty of other victories to tout, but we found that our employees shine when engaged with a client that is truly happy to have found us and pulls us right into their business thought process.
Fighting For Our Company
2015 was a very eventful year for another 100% growth year in top-line revenue and catapulting us up to 50 employees. I’d only managed 30 employees before in my previous executive role, so this was a new experience for me, and I found Clear Measure right in the middle of Doug Tatum’s No Man’s Land. This is where the company is too big to be small and too small to be big.
We’d already established all the major functions of a business and had dedicated people for all positions, but we were geared up for our growth and adding managers. If you read the book, you’ll know exactly our current state, but I like it that it is recognized, and we are moving through it.
Along with the regular challenges of investing in management and proper systems while balancing the “in the middle” revenue levels, we established a good-sized line of credit with our bank because the cost of payroll ever two weeks had gotten pretty staggering. And our larger client’s invoices were quite large, so we didn’t want our employees to ever worry about their paycheck. We have never had to use our line of credit so far, and I hope we never do, but I sleep better at night knowing that we could go several payrolls even if 100% of our clients all decided to stop paying us all at once. Cash is king in any business, and all risks have to be managed. Speaking of risk, we almost moved through a time where some current employees incorporated a competing software development company while on payroll at Clear Measure. They operated on other projects for several months using company computers before we discovered it. That was a very big blow to us because the guys were well-liked, and I still don’t know why they did it, but we lost a couple of months fighting for the company. We were able to resolve it, and now we are stronger than ever.
A Bright Future And What We Got Right So Far
We just recently completely Q2 planning, and the event I’m most excited about is that we have leaders in every area of the company. Our folks have heard me say “it’s not the Mark and Jeffrey show anymore”. It’s true. While at the beginning we had to make all the decisions, it is not like that anymore. In fact, most of my decisions consist of deciding who else in the company should be making said decision.
We did a bit of a pendulum swing, but we have a clear identity for the future. Our focus on making executives and business owners successful with their custom systems is still there. We still focus on return on investment, but we have grown to be a full-service firm around a custom software system that is used to run a significant portion of a company. Our best clients are mid-market firms who have a custom system already and want to invest for the future. It could be that the system needs to be upgraded, or it may need to be fixed in some manner. Or the system may need to grow so the client can offer more capabilities to its customers. Most of our clients are services firms themselves, and the better they operate on a daily basis, the better off they and their customers are.
Our first year “we are a software engineering department” idea didn’t stick completely, but 80% of it has remained. As we have grown and the size of client we serve has grown, we tend not to be the entire department because they already have something established. But in the cases where they are happy they found us, and they have a place for us in the long term, we are pulled into business conversations, analyze their own ROI, and we integrate with their company and because a very valuable team with a clear responsibility tied to strategic business outcomes. We still organize according to the Surgical Team concept, and our teams are more like SWAT teams than Armies. Where others would mobilize a 10-person team, we’d do 4.
We have found we excel when we have a business objective to accomplish. I have personally learned a lot in this journey, and there is much more to learn. But I am excited that this year’s challenges will be met by a whole group of leaders pushing forward with me in full support of them as their biggest cheerleader.