Tuesday, August 26, 2014

"2048" for a Better Development Processes

Courtesy FreeImages.com
Can software games provide insight to development process? The addictive new math game 2048 – conceived by a 19-year-old developer – is an ingenious variation on the theme of the classic sliding-tile game. Tiles marked "2" and "4" appear at random locations on a 4 by 4 board. You have to merge tiles with identical numbers. The aim of the game is to reach 2048 before the board fills up. As luck would have it, the 2048 game is an excellent analogy for the process of software development.

Software developers develop new code. They add new bits and pieces, and the software "board" gradually "fills up." As time passes, solutions once deemed elegant inevitably start looking like bowls of spaghetti. There will be much redundancy and inefficiency, and the software will become prohibitively difficult to expand further. In order to sustain growth and manage the mounting complexity, someone will have to continue combining, refactoring, and optimizing the software.

Refactoring takes time and effort. It is not productive. As far as users are concerned, while refactoring is taking place nothing magical is happening in their world. But to keep moving forward you need to refactor. It might not work for absolutely everything; however, "2048" useful to keep in mind as a design pattern.

How do you know that a code is ripe for refactoring?
There are software tools that can help identify inefficiencies in the code. It is also possible to build into the processes in order to assess the need for refactoring during code reviews and bug fixes. Refactoring should also extend beyond the code – to databases, third party libraries and to supporting infrastructures, not to mention the processes around them.

Who should be refactoring?
Who among us wouldn't love to have someone on the team take that extra step to double check whether a class they're working on isn't already too long, or whether similar code that shows up in 10 places couldn't perhaps be condensed into one spot? True, it's rare to find such a purist. So, on the off-chance that you do find one, please give us a call!! Your best bet is to set up the time and/or identify dedicated "senior" refactoring resources on the team. To find the optimal ways to combine pieces on the figurative board, refactoring requires advanced skills and a holistic view of the system.

With a bit of work, you can have 2048 process set up and running in your team. BTW, how are you dealing with your technology growth challenges?

Daniil & the team

Thursday, August 21, 2014

The First Steps to Get Your Business off the Ground


Courtesy FreeImages.com
This blog is about sharing & implementing brilliant ideas in the software space. So, you have a brilliant idea… you go to validate it. And now you know exactly what to do from the product/idea implementation standpoint. You may even have some potential customers cheering you on at the end of the rainbow. What are the next steps? This post will touch on some of the initial logistics you can take care of while you're working on your vision. Depending on your unique situation, there may be more decisions to make and action items to work on. Nearly every single one of them will warrant in-depth research as well as being subjected to the decision making process. Upcoming posts will overview additional steps & dive deeper into the details of actual activities.

Put a Name on It
Come up with a name for the product and the company. It's not critical, but since you're building a baby… might as well give it a name. Going through this exercise will also help you arrive at a clear understanding of what it is you are about to build. A product? A service? Is the name extensible? Is it suitable for your target audience? "Churpsies" could work great for the end-user consumer base, but you might need something more dignified-sounding for the corporate audience. Seek out your potential company name online to make sure there's nothing similar out there already. Apart from causing confusion, using a name that already exists could easily land you with a lawsuit… And, while you're at it, a search through the trademark database could provide some useful information for moving forward.

Secure a Domain Name
This step is similar to picking a name (see above). There are scores of domain name registries. DoDaddy.com, Network Solutions, and Register.com are three of the most popular. If your desired domain name with the top level extension ".com" such as mybrilliantidea.com is already taken, it's sometimes possible to purchase that domain name in the secondary market. However, prices can run pretty high. Alternatively, you could get creative with extensions like .es, .is, .us, and many others. Find out more here.

Register the Company
To formally create a company you might need to register it with the IRS and with the state and local revenue agencies where the company will be incorporated. Depending on your objectives it makes sense to carefully access the decision on the state of incorporation and type of incorporation (LLC, S-Corp, C-Corp, etc). It is best to consult your lawyer and/or accountant/financial adviser for their recommendations before making the final decision. As with finding the right doctor for your newborn, these key professionals will help you bring your business into the world. Shop around; ask for referrals and recommendations to find people you're comfortable with on a personal as well as a professional level. Services like BizFillings.com make it easy to navigate the basic steps involved in registration but are no substitute for professional advise.

Take Care of the Legal Paperwork
If you're joining forces with one or more co-founders, a shareholders' agreement is a must. To continue with the family analogy, it is the pre-nuptial agreement and the marriage contract in one. Ideally, questions about who is responsible for what, and how much effort they will put in, and what to do if/when things go wrong should be addressed before you actually run into those issues. With that in mind, it makes sense to get this step out of the way sooner rather than later. Other legal paperwork may include a non-compete agreement, a stock purchase agreement and other documents based on your specific circumstances.

It's Not Over Yet!
Next, you may want to contemplate getting an email account, finding a hosting provider, registering a business address/mailbox, designing a logo/website, thinking about business insurance, opening a bank account, and... Whether you are setting up a daycare center or building a cloud software product, getting your company off the ground can take a number of steps. Find the process that works best for you, your location, and your specific situation. In the course of your activities, every step of the way, never stop your quest for the like-minded individuals who can help you realize your vision.

Ah, brilliant ideas! Ready to realize yours?

Rachel & the team

Thursday, August 7, 2014

V for Vision: Moving Forward to Create a Better Future

Courtesy FreeImages.com
What's the most dangerous thing for the human mind? Stop for a moment and think. What comes to your mind? The thing that comes to mine is complacency - the feeling of self-satisfaction that stops any thought of progress or innovation dead in its tracks.

'This is sufficient for our needs', 'We'll keep our eye out to see what everyone else does and then we'll make our move', 'Let's just revisit this a few years from now', 'No one is complaining, so why rock the boat?'

With the market evolving at the frenetic pace of the last decade, if you hear these words too often at work, the chances are your ship is already starting to sink … According to Gartner: by 2017, one third of current market leaders may be displaced as a result of an information crisis brought about by their inability to adapt to the information race.

And you know what else? Vast majority of software vendors are still on premise, and 71% of corporate buyers want to consume their services in the cloud. Guess what this means for the industry. It's true, there's still an opportunity with the dwindling number of corporate buyers staunchly looking for installation box sets. But while not every product is ideal for the cloud, installed client base will continue to erode. Office software is the poster child of things to come. 

I personally can only speak for the cloud software space. However, it seems that we're starting to fight technological complacency everywhere - from the outdated information sharing that slows down our scientific research, to the ending of our dependence on the old school (pun intended) teaching methodologies.

So, guess what? Complacency no longer means job security. Unless your objective is to watch the rapid degradation of value that you imagine you'll have 'forever', the status quo ended a long time ago. The next time you hear someone say those words @ work — in the words of the immortal Morticia Addams — Help them! After all, your future is a reflection of the effort you & others around you put in it.

What's your vision of getting ahead?

Rachel & the team