The purgatory machine, part 3
My resolve: Change must occur from within to alleviate inhibitions. Do not place blame on others or your environment. Begin to think differently, without aspirations of influence. When you are no longer concerned with external perception, rather infatuated by your limitless nature, then you may willingly forgo the comforts of localized community to embrace the universe.
A continuous shift in perspective is paramount to maintain the tenacity that will empower you. Everything occurs in cycles. Everything takes time.
If all customers were entrepreneurs
If all customers were entrepreneurs, there’d be a mutual respect throughout every transaction, start to finish. Outrage over simple, often trivial issues clearly reflects a level of ignorance and a lack of appreciation for the skill, effort and challenges that accompany product development. I see this in the support forums and social outlets of startups and established companies alike. Perhaps before vomiting irrational frustrations all over the squeaky clean internet, it would be wise to contemplate a constructive and effective way to voice your concerns. After all and let’s be real; hair-trigger, disrespectful and overzealous reactions toward things that don’t go your way are really just the outward manifestation of internal inadequacies :)
Great entrepreneurs know they will succeed
Those who feel they have discovered something so unique that it must be protected, smother their likelihood for success. Ignorantly enslaved by an idea, their mental model depicts a smooth, continuos progression of success and wellbeing. When reality challenges this model, it invokes discouragement, confusion and heartache. All they have been taught appears violated.
Great entrepreneurs know they will succeed, but they don’t always know how or when. They possess the confidence to showcase their model for critique and criticism, because they know it plays a small role in a larger end game. While it may take countless tries and many years to scale, expectations are instilled that support psychological stability in the interim. All experiences, for better or worse, are embraced and applied strategically.
Philosophy is paramount.
The purgatory machine, part 2
Infrastructure has grown to exploit an expanding demographic of self starters. In the earliest stage of idealism an individual may interpret said infrastructure as a spring board to success. I think of it more as a broken trampoline. Here’s why.
We as human beings long to be part of something bigger than ourselves. A community where we feel comfortable and accepted. As we depart our day jobs an abrupt transition from predictability to relative chaos instills fear. In this moment we cling to the next most comforting establishment and find solace among those who chose a similar path.
Co-working spaces, accelerators, cult-like buses and the like are common gateways to a community at large, filled with an eclectic mix of individuals with different views and aspirations. Yet idealism under the umbrella of a for-profit organization is dangerous. You are now an asset, slowly increasing your dependence on the same social structure that should be a catalyst for growth.
My theory is that under false pretense we engage this infrastructure for all that it promises and as our comfort level grows, we self-sabotage in order to remain safely within its confines. So how does one break through?
The purgatory machine, part 1
What you want and what you do not want will influence your actions as an entrepreneur. I will tell you what I want and what I do not want. Maybe it will resonate. I do not want to make new friends in the context of business. I do not wish to be part of a larger community where I feel accepted, safe, comfortable and free from judgement. I do not want to sit and talk about change for longer than I take action. I want to take risk, build great teams and launch exceptional companies. I want a single focus and I want consistency in achieving my goals. I want this burden placed on my shoulders because it helps me grow and become a better person.
Perhaps you have similar ambitions. However for many who would consider themselves entrepreneurs, this is a confusing time. Startup life is glamorized by the media with highlights taken out of context. Co-working spaces, accelerators and educational programs pave a golden road to success. VC firms flaunt their promising portfolio, showcase their 10x and hide their failures. The cool kids are in stealth mode and the stage is set. Let the conversions begin!
A rise in entrepreneurship over the past few years is easily explainable. But the short term results are perplexing to say the least. I see a growing population of young people who seem unwilling (for whatever reason) to accept responsibility for their own initiatives. I see a greater emphasis on socializing with less accountability for company growth and evolution. Greater aggregation around buzzing trends, increased levels of conformity with less motivation to compete.
Yet somehow everyone and their fucking grandma is a CEO or co-founder. This can no longer be defined as entrepreneurship, can it? It’s well known that most new ventures collapse, but I believe we’re experiencing something entirely new. What’s more, there is an infrastructure and subculture emerging to support it. Designed to harbor lost souls and obfuscate their vision. A base of pillows for their failure to launch. A machine which capitalizes on the aimlessness of a self-sabotaging demographic. It’s purgatory. It’s sort of brilliant.
So why does it matter? Why should anyone care and given they do, what is the proposed solution? What are horseshoes? Is anyone still reading this? Separation of what’s genuine will be apparent in the concrete form of market share. Therefore the phenomena described becomes seemingly irrelevant to those who break through. Why stress over the slew of shitty products reaching production; the degrading quality of our country’s software engineering; the abundance of small-time thinking and the avoidance of reality by a growing cast of wantrepreneurs?
The Rose Colored Startup
Is it just me, or does sensationalism obfuscate reality for aspiring entrepreneurs? We see the browbeat prevail and fall from grace. It’s inspiring, no doubt, to conquer new frontiers.
Yet many creative minds commit motivational Seppuku when reality sets in, never achieving ultimate victory. The veil is lifted early, presenting unfavorable odds and persistent challenges. And while I would never oppose an empty cubicle, one must be aware of what lies ahead to prepare their heart and soul.
New to the game myself, I will not pretend to spit battle hardened words of wisdom. Alas I am eager to give back in any way, however trivial. Some of my heuristics include:
- Organic growth over venture capital
- Exhaust yourself then recharge
- Build a team carefully, discard quickly
- Find and tackle a niche with passion
- Automate where possible
- Curb your ego
- Rise above the day to day
- Listen to your customers
- Remain agile, embrace change
- Avoid the plateau; innovate
- Network (in real life)
Not all at once of course. Each item may be approached from many angles. Each approach is time consuming and requires dedication. Drink some coffee, do your best and call it one rotation of the earth.
Drawing your own conclusions
Reflecting on previous comments, I take my own conclusions with a grain of salt. I realize that I have much to learn, my assumptions may be slightly off at times, and what is accepted as a best practice now may change later. I respect what those before me have accomplished, but I’m careful it does not obfuscate my view from new outlooks. We can exercise a certain method, but we should not accept it as the best and only way. This applies to management techniques, software design patterns and so on.
I try and keep an open mind and refresh my perspective on occasion with the intent of gaining a new understanding. Drawing new conclusions can’t hurt, even if you come to find out they’re wrong. It can only paint a better picture. It’s important to understand there is still so much room for personal growth. That is what I love about the field. I could study in it for many years to come and never hit a plateau. Whenever I’m in a discussion about technology and I hear someone say, “I know all about that”, I’m quick to point at that most likely they don’t. Not in a demeaning manner, but rather to encourage further exploration. This will in turn lead to better discussions.
I enjoy the theoretical aspect of software engineering, but also arriving at new understandings through practice. I take what I learn each week and seek new ways to apply these concepts to current projects. Sometimes I can, sometimes I can’t. Sometimes I learn the hard way, other times I can take a proactive approach. Either way what I learn I remember for the future and remember what I learn the future may reshape.
Moving into Design
In learning more about design, which has since been shrouded in mystery, I’m starting to see a clearer distinction between abstract architectural concepts and elements of the aforementioned. A recent exercise in my Architecture class presents a welcomed learning curve in exploring the lower level details of software design. While I have some programming experience, I never reached the point of applying various design concepts, nor had I previously understood them. My work was simply too basic and done as a hobby rather than in a professional environment. While I still may not have the programming skill to apply what I’m learning of design, I find a solid understanding of programming concepts coupled with newly acquired design knowledge will be beneficial in guiding projects as they evolve from models to modules.
As I continue to pursue my working knowledge of web languages (particularly Python) I remain cognizant of certain design concepts, such as MVC, and the benefit of adhering to their guidelines.
I’ve been doing a lot of research on agile “requirements”, particularly user stories. User stories strike a great balance between lightly documented requirements and conversation. As requirements and architecture are so tightly coupled, this got me thinking about the relationship between user stories and agile modeling. Conventional architectures are based off of (at times) extensive and cumbersome SRS documentation. There is no room or time for such an overhead in my organization. Yet if not properly composed, I’ve found that both agile requirements and modeling can get you into trouble. I have to keep reminding myself that user stories are simply a reminder to converse, not solidified or final requirements. As these stories evolve or become obsolete, as should the associated agile models that represent the system. They are designed in such a way that change should not be troublesome or overly difficult.
Yet there are challenges associated with the elicitation of user stories. The customer must realize he or she has to play an active role and actually write the stories under supervision of the agile team. This shift of responsibility may be welcomed by some and either misunderstood or shunned by others. It is important in my opinion to let the customer know you are there to work with them, not to pass full responsibility and expect more than they are capable of. Usually I will begin by writing the stories for the customer and gradually shifting that responsibility toward them, still under my supervision. They soon become comfortable with writing and prioritizing stories that I’ll write test cases for.
It is recommended that the elicitation of user stories involve the entire development team. They require a level of intuition with respect to the client’s needs and frequent in person and or remote meetings. But what if you have an outsourced development team that maintains no direct contact with the client? What if they’re not accustomed to working this way? They may request up front documentation of the entire project or seek to provide a deliverable based on one or two initial meetings. This will pose a challenge if you’re looking to incorporate agile practices into your organization. This conventional method simply isn’t how you or I wish to operate, and so comes the challenge.
We have a couple of options here. You may act as the single liaison between the customer and the developers (as I have been), facilitating the creation of user stories and prioritizing them for a reactive team. Or you may train the team to change their way of thinking and hope that it works. The second option may do everyone good. It will allow you to reflect on what you really know and allow the developers to learn something new. If you can convey these concepts in a clear and effective manner, you’ll help solidify you’re own grasp of the situation and ensure a smooth transition. Teaching is understanding and a challenged team should be a happy team (unless they’re truly oldschool, in which case it may be time to ease grandpa away from his pdp8 and see if grandson needs a job). The first option is simplest, the second requires time, planning, persistence and optimism. Change does not come easy, but persistence and a hungry team should allow the benefit of this method to be fully realized. Starting here can set a foundation for further change in the overall development life cycle.
The Path to a Product (Part 1)
The path to a solid product may be a long one. Starting a software company infers a high level of risk and uncertainty. If you enter the game as a service provider, you may not have a defined product. Personally, I’m still trying to say “Hey look, I have something concrete here”. However I do not feel that way, and when I think about it, I probably shouldn’t yet.
My belief is that if you want to build a scalable model you need a product or suite of products, and this does not happen over night. I currently play the MSP game and develop custom software as per client requests. There is little software reuse and often a learning curve to obtain some level of domain expertise in your client’s field. While my client base is small, as it grows maintaining domain expertise and managing various projects will become increasingly difficult. This is why I am looking for opportunities to tailor a piece of software for a specific industry. It will allow for a much higher level of software reuse, and a common architecture to build from. I believe this focus and direction will really allow my company to scale.
While my path is yet to be seen, I’m positive it will appear (no, not like magic… I’ll make it appear). In the meanwhile with complete optimism I enjoy exploring various architectures, designs and models for the benefit of being well versed. I love the challenge of designing something that I have not yet encountered and learning about the industry.
So if you’re in this stage where you do not yet have a defined product, look at it like me. Embrace the uncertainty and explore what’s out there. With consistent and hard work it will come to you, just don’t look so hard that you deny yourself valuable experiences in the meanwhile.
This being part 1 of a “mini blog” I’ll follow up with steps I’m taking to reach my ultimate goal. More to come.