Domain Driven Design – 10 Years Later

I’ve been an avid podcaster since its inception and before podcasting I would web stream my favorite radio shows like This American Life or download the files and transfer them to crappy MP3 flash player. Ah the memories of the days before the iPhone.

I finally caught up with a software engineering radio pod from May of 2015 where the topic was reflecting on Eric Evan’s classic text Domain Driven Design 10 years after its publication.  Reflecting is right. When that book came out I about to start grad school at the University of Minnesota and reading every decent text I could get my hands on. I’ve always prefered looking wide and long at the software field and was drawn to software design, product design, & user experience rather than focusing on stack specialization, russian algorithms, etc. so Eric’s book was a natural fit for me and I remember loving it and praising to all my peers.

Those were critical years in my engineering & leadership development, I was two years removed from creating a flexible ecommerce platform with my mentor and was just beginning with a few new firms around e-leasing & digital media ecommerce.

The software engineering pod brought Eric’s voice back into my head and the terms and language from the book flushed into my thoughts. It’s amazing how memory recall can be effortless when the material, even if distant, struck a chord and anchored in your thought process.

This pod covered how DDD relates to the terms of today like: CQRS, NoSQL, & event sourcing. I was struck with how the principles of DDD have been reflected in the designs of the companies, teams, and projects I’ve worked with since 2005, regardless of the tech space or stack.  I think the book provides considerations that are still very valid today. If you haven’t read the book it’s worth your time, if you have read the book then check out the pod.

Eberhard Wolff talks with Eric Evans, the founder of domain-driven design (DDD), about its impact after 10 years. DDD consists of domain-modelling patterns; it has established itself as a sound approach for designing systems with complex requirements. The show covers an introduction to DDD, how the community’s understanding of DDD has changed in the last 10 years, the often overlooked component—strategic design, how to use DDD to design microservices, and the connection between microservices and the DDD bounded context. DDD originated during the era of object orientation and relational databases; the show concludes with a look at the recent impact of functional programming and NoSQL on DDD.

 

 

 

The Best Apps to Run a Startup From Your Phone – WSJ

The recent story in the WSJ about the best apps to run a startup from your phone with is certainly a smile-inducing title. If only there was an app for smart hiring that didn’t screen scrap until they get it working (I mean really), business model canvassing, and accurately predicting market trends.

All of these applications and sites are wonderful and they do allow us to be far more efficient which then allows more time to what really matters whether it be a startup or a legacy company. This brought me to consider the apps/sites I most relied on in my past three workplaces: my consulting days at JD Laboratories, my enterprise IT days, and my current small company product days.

JD Laboratories – Time and Materials / Projects

The key here was project tracking, time tracking, and invoicing. I used Quickbooks for my P&L, financial reporting, and invoicing. I used Paymo to track my time and then generate the monthly statements that feed into quickbooks as my T&M clients were billed monthly.

When I worked on a project basis I initially used basecamp from 37Signals as I was a junkie of their blog, into Ruby on Rails, and they had the best offering. However, my clients didn’t like logging into their system which led me to adopt Trello which I have brought with me everywhere since. I trust their are better systems than Trello when doing feature assessments but at the end of the day I always go with simplicity and actual use before graduating to something more specific and complex.

And my long-term client Mix & Burn used FogBugz for issue tracking which was nice because of tie-ins with our IDE although the UX was sluggish at the time.

Enterprise IT

Enterprise IT certainly brought challenges when coming from my own shop and that was actually part of the allure. Small hurdles were not having the credit card initially and firewall rules for external systems. I was able to bring in Trello for my personal project tracking and then used Jira and Confluence with a new technical team I built focused on enterprise integration. Confluence was wonderful for publishing the standards and practices of our restful API’s as our product support teams could easily see them and we could export them for vendors that were integrating our APIs with their vendor systems.

We also used an agile-ish project management tool that was a $1 a seat; it was a short experiment.

SetSight – SaaS

For SetSight the focus has to be on easy as the history has been a bit of a gunslinger mythos with inconsistent processes so we can use something very rigid. So I brought in Trello to do the product backlog and sprint management. Trello has numerous external plugins that offer sprint scoring, estimating, charting, and reports. My favorite is Plus for Trello. For issue management we use TeamSupport and their is some clamoring for Jira. I think Jira is great but from a process perspective we are at the point we were need to get better at what we do and sometimes there is the perception that the tool will fix bad behavior; I say fix bad behavior first.

From a dev perspective we moved to Git from Svn to improve future tie-ins with external build and testing systems. We have yet to do automated testing and continuous deployments since we’ve moved to AWS but are well on our way.

Source: The Best Apps to Run a Startup From Your Phone – WSJ

MBA Homework – An example of the 20 minute paper

Last week it warmed here in Minneapolis and I felt inspired to do some spring (wishful) cleaning in my Google Drive. While doing the file purge/reorg I came across a paper from one of my last MBA classes, Strategic Management. Strategic Management is a classical business course and the intention in my program was for it to act as capstone course where you are able to combine the past few years of business wisdom you gained from course materials, lecture, and your cohort into honest, deep, and frank discussions around business. The open discussion is where the true learning comes from as there is an opportunity to learn how other organizations approach common business and organizational issues and you have the opportunity to debate classmates in a safe environment.

Capstone classes are historically fun and rather light on the typical ‘work’ you’d come to expect from a graduate program although anyone with a STEM or Comp Sci background will never find any MBA course challenging, at least not compared to discrete mathematics or physical chemistry. Still, there are papers and readings, and my capstone class had ‘light’ papers which warrants the student to pull out the quick response aka the 20 minute paper. Below is one such example which included some personal work references to allow for fast typing and then some class discussion/readings mixed in for completeness. Far from works of art or high mindedness!

Last Capstone Paper

I’m coming up on my one year anniversary at <CompanyName> where I lead up product development. When I began with <CompanyName> my expectation was for my focus to be split 75% on strategic / long-term planning and 25% on tactical / short-term needs and that opportunity is what attracted me to the position. Out of the gate I focused on learning the business, its competitors, and understanding the general environment via Porter’s 5 forces and I found it helpful in my ramp up phase. However, after a few months I was seeing a flaw with my focus ratio regarding strategical/tactical concerns; that ratio just wasn’t what the business needed at this point in time and the percentages should have been reversed with 25% looking strategical and 75% focused on the tactical areas.

Flipping the ratio came from a basic “walk before you run” assessment I made about the organization around the first of the year. An analogy would be with remodeling a home by changing it from a rambler to a McMansion and I was the contractor, bringing me on was a key milestone for our corporate growth initiative. When I walked in the door I was focused on planning the new floor levels, setting dates, & coordinating resources. I had assumed the earlier sitework had been done but I was wrong and had to slow down and consider other factors like the foundation, the utilities, and how the occupants utilize the home and how would they want to utilize it in the future. I had to ask questions like “do the occupants know we are remodeling and if so do they know why?”.

Since then I’ve focused much more on our processes, culture, and bring consistency to the company. I’ve always been drawn to the topics of organizational behavior and how a company’s culture affects the road before it and that came up in our first week of class when we discussed the Miami Dolphin’s story and their failure to understand the implications of releasing key individuals from their locker room. Any team is more than the collection of its parts and working with teams to build the norms and culture that mesh its past norms and future strategic focus is where I’ll keep my focus now and into the future. I plan to do this through providing leadership, personal accountability, and trying to empower others while working with team members to reformulate a culture of greater trust, openness that rewards creativity and attracts smart people.

Leadership is an area of great fascination to me and I’m always striving to grow and improve as a leader and know I have a long ways to go on a journey that shouldn’t have a completion marker just milestones. The type of leader I’ve been thus far is one based on trust, accountability, and action and I’d like to evolve to be more inspirational which I expect to come via wisdom and finding an ocean, hopefully a blue one, that calls to me thus helping me show my passion. I’m aware that if I’m not “on” or engaged that I can present some non-verbals that aren’t ideal leader traits. I’ve been a long reader of Daniel Goleman and his “What Makes a Leader” article in HBR regarding emotional intelligence is an area I have and will continue to put effort into focusing on so that I better understand myself and better understand and relate to others.

One leadership focus I will add to my arsenal is holding more postmortems. Postmortems are a norm in classic project management and while I’m typically reflective when things don’t go well I do so in an insular fashion and wouldn’t host a group reflection to do so. Also, my midwesterner nature would have wiggled out of allowing a postmortem on a successful project initiative much like I’d downplay a compliment but I can see that is where great learning resides. There is much opportunity there and “Why Leaders Don’t Learn From Success” was a HBR piece with much sway on me.

As I mentioned earlier, the past 8 months had been focused on process improvement while the strategic had been limited. We’ve implemented agile methodologies in our development teams which was later adopted on the sales and support teams. On the technical side we’ve devised processes for software deployment, quality assurance and testing, new technologies, and security improvements. On the organizational level we’ve set new HR processes with our review and compensation plans, created an onboarding plan, and beefed up the employee handbook. These are not the areas where I expected to be moving dirt when I joined <CompanyName> but now they are all building blocks that form infrastructure that allows for larger initiatives to come and build on top of. For example, now that we are 5 months into our agile methodology we have data on how much work we accomplish in a sprint to a degree of high confidence and may not apply that metric to the product backlog for our new product version and have a swag estimate as to when it will be ready for the market. This leads to conversations on marketing, sales, and support that then grow into those strategic conversations about business level strategy. And these are the other strategic areas I found so enriching from our conversations and materials: red vs blue ocean and competitive advantage with low cost or product differentiation.

There will be no shortage of areas for me to apply the topics we’ve covered in class and I look forward to having them.

AWS’s use of Gartner

AWS recently came out with a short product marketing piece that highlighted Gartner’s cloud rankings from October of 2015 and AWS’s first place ranking in 4 cloud subcategories. Those working in the cloud space know of AWS’s strong position from both offerings and market share so who is the post for?

Gartner CC Product Scores for App Dev Use Cases image

The answer lies in the source, Gartner, who is akin to the Angie’s List for the Enterprise. Gartner, like Forrester Research, provides rankings, research, and analysis on a range of technology, primarily for the enterprise. The use case I’ve been involved with is selecting new enterprise software for a past organization I worked at. Now you can implement whatever selection process you want but at some point in time you’ll either be using a ranking from a research firm as a positive trait in your budget pitches or at least must be prepared to be questioned on their ranking.

The cost of these platforms are so immense for enterprise customers. My last experience was at a midsized bank and the budget for the integration platform we selected was a solid chunk of the overall IT budget; that was a big deal for us and required presentations to every level of leadership in the organization. Certainly large banks and other enterprises aren’t always incentivized to move fast in technology areas when the high cost brings serious risk and opportunity cost. So marketing posts like these used to help assuage that risk to the enterprise and provide the technology leaders within the research assistance when making their case for a cloud introduction to their enterprise. My suggestion, use risk to your advantage and leverage the ability to use the cloud as a potential failover in your HA environments.

Source: https://aws.amazon.com/resources/gartner-cc-learn-more/

Performance Reviews – Everyone Knows They Stink

Accenture was in the news in July for ditching performance reviews and with their 330,000 employees, that is a big deal. In its place they planned to implement a process that is more fluid and fast in providing feedback from managers to team members. That speaks to the clear flaw in many organizations today in that managers aren’t providing consistent, clear, and timely feedback to their teams.

I remember covering various review processes during my first MBA course, Organizational Behavior, which solidified my view that most of the issues teams and organizations face are centered on communication, on people. We come up with processes to try to improve the people side and end up with three page performance reviews that the manager and participant are likely not behind. We can do better by keeping it simple.

In March of last year, Deloitte decided to move away from performance rankings and instead ask four simple questions and I’m drawn to this simple approach.

  1. Given what I know of this person’s performance, and if it were my money, I would award this person the highest possible compensation increase and bonus.
  2. Given what I know of this person’s performance, I would always want him or her on my team.
  3. This person is at risk for low performance.
  4. This person is ready for promotion today.

We all have stories about how to not use performance reviews. As a manager, I’ve been given detailed salary adjustments for each of my team members without any of my input in the process. That was far from empowering but very aligned with how this business operated. As a manager, the takehome is that the review shouldn’t be a surprise. Your team and you should have interactions all the time. Your goal should be figure out how you can make their job better, their career brighter, and they should never be left wondering where they stand. That’s where agile has helped. Daily standups and mantras like fail fast has increased overall feedback cycles making it even easier to keep with your team.

The areas where it gets more difficult are on remote teams and large teams. Remote teams simply require more discipline to keep in touch. Video chats are far better than instant message and even more so than email. Large teams are just tough. Team size should be a manageable number. Some say 5, some day 10 but few say 20, especially in technology. It should be at a size where the manager or team leader has the ability to have contact with everyone at a regular basis and know the temperature of the team.

 

Recent conferences – Open Spaces

I recently went to a Minneapolis based open spaced lead by DevJam and held at Symantec. I used it as part of my nerd friend growing plan where.

Interesting topics around agile, scrum, and had folks from the Target API team, SetSight, and other local firms. The best part of events like these is to connect you with others who love technology enough to pull away from the doing to chat with others about they what and how.

Startup Weekend Minneapolis / minnedemo

It’s a great week for the Minneapolis tech scene with Startup Weekend Minneapolis and minnedemo both in full swing. Many of the sessions are full but if you can make it out to something you should do so. For Startup Weekend I’ll be attending the open house at Vidku and I’m excited to learn about what they’re working on and seeing their space. I’ll also be at minnedemo like I usually am and excited that my attempts to sell my tech friends on the event is working; I’ll be meeting a big data Target techie as well as my IoT-focused buddy there.

Let’s go Minneapolis!