After observing millions of dollars wasted and made, companies close, and lives disrupted I have adopted these lessons. Your business is not immune from the problems of modern knowledge work. It does not matter if you are a division of a public company or a startup. These lessons are my remedy to the current development catchphrases (agile, scrum, sprints, kanban, waterfall, burndown) when they fail to meet the expectations of business. 1) Write down what you are doing – create a ticket! Create an issue for all work to be done. Make it public for your team every day. Everybody writes tickets, and everybody follows the same format. Use a tool everyone on your team likes. Use a task manager,[…]

Refactoring is a necessity in software development. As engineers, our first attempt at writing new feature code is most likely filled with rats. Then we refactor the code to make it maintainable, readable, faster, and less prone to bugs. These refactoring rules for the three phases of development can help development teams scale the correct code and not break the business. Consultants do come in many shapes and sizes, so my disclaimer is Uninteractive, my company, is focused on general feature development for early and growth stage startups. These rules may need adjusting for your large scale development operation, although lean focused teams can live by them. Software projects land in one of three phases – The POC (proof of[…]

Today marks the end of a 365 day journey of writing one Ruby programming tip everyday. It has been a long journey to consider new and interesting content in the realm of a Ruby and Rails programmer. I have learned so much and I am very happy to share this content with the world. For today’s final tip, in the 365 days of Ruby series, let’s look at how the each_slice() method does what it can to arrays. We can iterate over collections and grab the modulus of three and return a result when that happens. [1,2,3,4,5,6,7,8,9,10].each_with_index do |num, idx| puts "#{num}" if ((idx + 1) % 3 == 0) puts "end of line" end end   #=> 1 #=>[…]