Nashville Web Design | Programming | IT | Atiba.com

Archive for the ‘Custom Software’ Category

Atiba Kids Series — Learning to Code: Day 1

Our blog series Atiba Kids features tech musings from a few of our team’s kids…  

This post is from Isaac Chomsky.   A brilliant rising high school sophomore on his first day teaching himself how to code.   Enjoy! 

Learning to Code Python:  Day 1 — by Isaac Chomsky

In our modern world, technology has become increasingly useful for everyday practices.

Because of this, it is important that we all learn how to properly utilize technology for these methods. In order to do that, I’ve recently decided to enhance my Python coding capabilities by working on a program that will notify me whenever a homework assignment is almost due.

This program is most likely something that has already been created, but it is still an excellent way of learning how to use Python in conventional ways. First, I had to figure out exactly how this program could work. One idea that I came up with was to create a calendar where the user could input their school assignments into the dates that they are due and, one day before the due date, the program would email the user to remind them of the assignment. This initial idea seemed plausible, so I decided to work on making the idea a reality.

The first step of this idea was learning how to create a program that can send automated messages. Through some short research, I learned how to use SSL, or Secure Sockets Layer, to properly encrypt my messages, making the message harder to be accessed by individuals other than myself and the person receiving the email. I also decided to implement “getpass” into my program, which allows the user to enter their password without it being displayed on the screen. (Basically, “getpass” is whenever you see this for passwords: *******).

This process of implementing both SSL and “getpass” proved to be sort of tricky, as the script of the program had to be exactly right or else nothing would work.

This is typical amongst programs, at least I believe so, but what made the process even more difficult was that when there was an error, the command console I was using for the program would immediately close, which prevented me from seeing any error code that could guide me towards finding the issue. However, through some manual review of my script and some trial and error, I was able to find the problem (finally!) and successfully complete the first step of this project.

Day 1 appears to have been a success!

Overwhelmed by Software Development

Software Development – Where to Start?

One would not generally associate custom software development and healthcare but stay with me here …

Having previously spent 15 years in healthcare it’s been my observation that many people don’t know what to expect before (or after) they, or a loved one, experience a health event.  They may become overwhelmed, frustrated, and even apathetic when a health professional talks to them regarding a change.  Apprehension and/or decision paralysis seems to set in and they put off taking that next step even though it might really improve their quality of life.

It is easy to be in that same boat when it comes to understanding technology and moving forward with a custom software or website that could significantly improve your business.

It is a goal of the fantastic Half Geek Half Human folks at Atiba to help demystify technology and be customer-centric.  If you are thinking about custom software development or design, but are inundated by the information out there … hopefully this article can offer a new perspective.

An Illustration

Using a general healthcare example, let’s say a person is thinking about getting a knee replacement.  This process is not as simple as walking into the hospital and requesting the surgery, is it?  <Insert Laugh Here>

There is the progression of doctor visits beforehand – likely the general practitioner examines and recommends some exercises and maybe an anti-inflammatory medication.  Then, typically, comes a prescription for physical therapy or a stronger pain medication.  Eventually there is a referral for surgical intervention.  A couple orthopedist visits are likely next to determine candidacy for a knee replacement and what type of procedure needs to be performed, etc.  Consulting with insurance to see what will be covered and which providers are in network is also part of the process.

As the journey continues, the surgery is scheduled (hopefully there has been a case manager involved by this point).  A list of best practice recommendations is often provided for maximum results.  Some of these directions may include a list of exercises, medication instructions, pre-registration information, pre-op bathing instructions, etc.  Decisions such as transportation to and from the surgery, time off work, and aftercare plans for therapy must also be made.  The surgery hasn’t even happened yet and there has been so much “front-end” preparation already.

It’s the day of surgery and the “back-end” work begins…no one can really see what’s going on inside the knee except the surgeon & the team doing the operation.  The possible risks were explained and signed off on beforehand; such as the risk of undergoing anesthesia, risk of infection, risk of defective replacement appliances, etc.  Then the procedure begins and there may or may not be complications along the way.  For example, what may have been planned to take 2 hours, maybe takes 5 hours because of an unforeseen complication.

After the operation, the incision is inspected, ice packs applied, and precautions are put in place to minimize risk of infection.  Immediate and continuous physical therapy must ensue to get adequate range of motion back in the knee.  Perpetual monitoring and modifications to treatment are essential, including: adequate nutrition, constant quality assurance, medication adjustments, reapplying bandages, etc.  All these little tweaks can be time consuming and seem exhausting, yet, are vital to the overall success of the operation.

How again does this tie into software development?

Most custom software development requires a lot of planning and follow-up that many people may not incorporate into the initial cost or time expectations.  As with medical procedures, it’s easy to get overwhelmed with the process and frustrated with unexpected complications.  Good communication, like in healthcare, is essential on both sides of the equation.  Expectations need to be made clear, however, maintaining flexibility is also important.

Like a Case Manager in healthcare, a Project Manager can be helpful in navigating the unknown territory.  Project managers can aid in establishing the timeline, being a single point of contact, and keeping the project on target.  However, just like with the above-mentioned surgery, unforeseen complications or “bugs” can surface and delay even the best planned project.

The Process

Think back to the knee replacement example given above…custom software development/web design can loosely be broken down into two parts … front-end and back-end development.

Front-end work usually includes design content and coding skills that affect what the user sees and interacts with on a web application, it also includes developing what is known as UX/UI experience.  It is the work done that makes the interactable part of software development user friendly & efficient.  User interface know how is combined with languages like CSS, HTML, JavaScript, XML based languages, Java, Objective C and iQuery to name a few. Deciding a CMS (Content Management System) platform (examples: WordPress, Drupal, Joomla, Squarespace, or Magento to note a few) can be important if the data entered on the website needs to be pulled to a database.  Other programs like Photoshop and Adobe can also be utilized as well for front end work and design.

Back-end development involves making sure the web application can communicate with the server so that changes can be made in the desired database.  This involves making sure the code on the front end is supported and using additional programming languages (like PHP, Ruby, Python, ASP.net, C#, ColdFusion, Haskell, etc) on the back-end so information can be relayed to the servers and Database Management Systems.  Then when someone clicks on the website or is using the custom software program the information can be generated immediately when summoned for the user.

This construction takes time.

Continuous quality assurance and testing must be performed, either by the customer or the provider, but it must happen.  And just as the incision needs constant monitoring & cleaning so no infection sets in… the code will need frequent testing as “bugs” pop up and patching needs to occur for the program to be continually functional.  It will be an ongoing process that needs to occur over the lifespan of the code… (Which is why apps, programs and operating systems need ongoing updates).

Software Development … The Take Away

Yes, there are a lot of moving parts to technology, just as in healthcare.  As patients must trust doctors, hospitals, and healthcare teams, be assured that a project manager/software development team use the best tools to create websites and custom software based on individual situations.

It can seem overwhelming, but just remember how to eat an elephant – one bite at a time.

Fortunately, the great folks here at Atiba can help get you started on the journey and walk you through every step of the way when it comes to custom software development and web applications!

Don’t put off improving and growing your business any longer!  Give us a call (615) 353-1921 or send an email to info@atiba.com

 

 

 

What is technical debt?

“Rather go to bed without dinner than to rise in debt.” — Benjamin Franklin 

The thought of debt can be a scary one that conjures up images of credit cards, mortgages, car payments, and sleepless nights.  To most of us, it’s simple to define:  an amount of money you owe someone else. 

But, the concept of debt is not always related to dollars and cents.   

This was weighing heavily on my mind last week as I was looking at my end-of-year-calendar. 

In the IT field, the term “technical debt” is often used to describe the habit of taking technical shortcuts that, over time, accumulate and cause more work down the road.  Because it’s hard to quantify and often hidden from management until it’s out of control, the buildup of technical debt on a project is sometimes even more dangerous to a company than money owed on a balance sheet. 

Delaying IT infrastructure upgrades to save money, not testing software thoroughly because of a tight deadline, blowing off doing a disaster recovery plan—these are common examples of shortcuts that build up technical debts that will always come back to bite you if not paid off at some point. 

There are other types of debt as well.    

Some of us (me) eat too much and build up an “exercise debt” that we must pay off at some point if we want to maintain a healthy weight.   Some work too much, building up a “sleep debt.” Others play too much and amass a “work debt.”    

These non-financial “soft” debts are more difficult to measure than what we traditionally think of as debt, but they have real costs nonetheless.  And just like money debt, if you’re not careful, you can spend all your time and resources paying the interest instead of paying down the principal. 

Proactively managing different types of debt is an often overlooked but critical skill that determines the long-term viability of every business.  Soft debts should be tracked and managed in much the same way that financial debts are. 

In tech, we call it a “backlog.”  It’s simply a list of any tech-related shortcuts, band-aids or items we skimp on because of deadline or budget constraints, along with estimates of how much work (debt) it will take us to fix them down the road.  Some technical debts are intentional – a conscious choice to save time or money. Others are accidental, discovered in the form of bugs.   

As the backlog list grows, the key is to treat each item as a debt owed, the same way you would as if you were making payments on a bank loan.   This involves planning your “savings” (in the form of time) so that you can eventually make your “payments” (in the form of future work).    We basically mark off time on our calendars for every project to pay off our backlog debts. 

Earlier this year we began to explore this simple backlog approach to managing other areas of debt in our company.   As expected, just like tech, the constraints of time and budget created a backlog in everything from HR to marketing.  Things like updating our employee handbook and standardizing our email signatures made it to our backlog.  And just like tech debt, we have marked our calendars for our end of year payments to clear out the backlogs. 

Thinking of debt as something that is beyond a purely a financial metric has changed the way we operate.  It’s forced us to justify any shortcuts we take company-wide, because we are now tracking them as real costs rather than forgotten to-do lists that will inevitably come back to haunt us. Sleep well. 

JJ Rosen is the founder of Atiba.  A Nashville IT consulting and custom software development firm.  Visit www.atiba.com or www.atibanetworkservices.com for more info. 

 

 

A Day in the Life of a Nashville Angular Developer

A Day in the Life of an Atiba Nashville Angular Developer

Sharing what we do Atiba so both clients and potential employees can see the behind the scenes of what’s it like being a coder in Nashville is part of our culture.  AngularJS / Angular coding along with ReactJS has been some of the main coding we have been working on for our clients the past few years.

Here’s a peak at a day the life of an Atiba Nashville Angular developer:

  • We did our stand-up meetings with clients and/or internal development teams first thing every morning at 8 am each day.
  • From there, I usually connect into Jira to look at the user stories I will be working on for the day
  • I started in Angular but now I have been focusing in Angular 2.x development.   I have 2 main projects I am working on.  One is working on the front-end of an intranet site and the other is for a large public website we developed and support called Guitars.com.
  • Lunch! We usually pickup lunch (we have a Microsoft Teams Channel we use to coordinate lunch plans.  Sometimes we all go out / depends on the day.
  • After lunch I either keep the Angular coding going — or depending on deadlines I will use some of my learning time that Atiba builds into the week to study new tech (currently working on learning PHP Laravel)
  • Wind down ~5 pm or so, some days stay later others done a bit sooner.

I have been working at Atiba for 7 years.  I started as a C# coder and still work on some .Net but have enjoyed mixing it up a bit!

Atiba has some of Nashville’s best front-end developers with a crew of JavaScript gurus doing Angular, React, JQuery and more.   Let us know if we can can ever help you with you project!

 

 

Drupal Basics from Nashville’s Drupal Developers

A quick Drupal overview from Nashville’s Drupal Developers…

Drupal is free software, written in PHP, which has a wide and active community of users and developers who collaborate together in its improvement and expansion. Drupal is designed to be the perfect content management solution for non-technical users who need both simplicity and flexibility. This is achieved with a modular approach to site construction.  Unlike other CMSs, Drupal is not a prefabricated toy truck, but rather a collection of wheels, windshields, axles, frames, etc., that a toy manufacturer can easily assemble.

Drupal can be described both as a content management system and as a content management environment: a unified system that strives to have the advantages of both, without its shortcomings. In this way, if someone is looking to create a news site, an online store, social networks, blog, wiki, or something totally different, it is all about finding the right combination of modules.

This extension is possible because it is a modular system with a very consistent architecture, which allows modules created by any developer to interact with the core of the system and modules created by other members of the community. With Drupal, it is possible to implement a wide variety of websites: a personal or professional blog, a corporate portal, a virtual store, a social network or virtual community, etc … Directed to those people, with technical training or not, who want to start in the creation of Web Portals with Drupal. It is also very useful for companies or professionals who want to create their professional or personal web portal without external dependencies.

Drupal is an open source program, with GNU / GPL license, written in PHP, developed and maintained by an active community of users. It stands out for the quality of its code and the pages generated the respect of web standards, and a special emphasis on the usability and consistency of the entire system. Online help: A robust online help system and help pages for the ‘core’ modules, both for users and administrators.

Open source: The Drupal source code is freely available under the terms of the GNU / GPL license. Unlike other systems of ‘blogs’ or proprietary content management, it is possible to extend or adapt Drupal according to the needs.

Modules: The Drupal community has contributed many modules that provide features such as ‘category page’, private messages, bookmarks, etc.

Personalization: A robust personalization environment is implemented in the core of Drupal. Both the content and the presentation can be individualized according to the preferences defined by the user.

Friendly URLs: Drupal uses the mod_rewrite of Apache to create URLs that are manageable by users and search engines

Matter Center: The Productivity Tool Your Legal Team Needs

legislative building

Microsoft partnered with CELA (Microsoft Corporate, External, & Legal Affairs) back in 2015 to bring productivity tools to law firms and departments with security and seamless integration being some of its goals.

Dedicated to helping consumers work smarter and not harder, Microsoft Matter Center combines the best offerings from Office 365 and Microsoft Azure (a secure cloud network) for a legal department’s needs.

Matter Center integrates directly with Outlook meaning that users can get the same functionality of shared calendars and email communication with additional security encryption for the most sensitive of cases.

Matter Center also incorporates key functionality specific to law firms/departments. For instance, Creation of Matters lets users create cases in Office 365 and add notes such as the case description and case conflict verification. These notes can be uploaded and managed from Office 365 through Matter Center. Matter Center also streamlines the process of tracking information for cases. It provides a centralized information tracking mechanism for people to work on cases individually or as a group. Users can share notes and discuss the case at length over the document.

Matter Center is the easiest tool to incorporate into daily practice. It serves as a central location to upload documents and allows employees to work remotely with ease by providing access to all the case information online.

Atiba is a leading Microsoft Partner able to provide expert level consulting services on many Microsoft products, including Matter Center. Reach us at 615.353.1921 or info@atiba.com for assistance in switching your legal department to Matter Center today.

 

 

 

Atiba is Hiring: Sharepoint

Atiba is looking for a top Sharepoint developer to join our team. If you have experience in Sharepoint programming, email an inquiry to info@atiba.com.

Five Key Attributes To Look For In A Custom Software Development Company

There are a variety of reasons people seek out a custom software solution for their business, and it is sometimes the biggest decision a business might make. The most common reason is that there is no software solution that solves the problem(s) they are trying to solve. It could be that there are software solutions, but they have poor functionality or just don’t fit exactly what they’re trying to do. It could be that there is a solution out there that is prohibitively expensive with many features the company would never use. If you find yourself starting on the journey to find a software development company, here are five thoughts to keep in mind as you get started.

1) Communication Is Key

Rare is a software development project that doesn’t require consultation and advice along the way. Look for a software development company that has been around a while and has the battle scars to prove it. And make sure they are good communicators so that if you request something they have tried in the past and found doesn’t work, they will not hesitate to communicate that experience to you. They should also be able to  recommend ways to solve your specific requirements. If you lay out your vision and come away thinking, “I have no idea what they are talking about, I guess I’ll just have to trust them,” you’re setting yourself up for possible trouble down the road.

2) Experience Counts

hands typing on a laptop keyboardIf you’re looking for a custom software solution, you’ve probably reached your last nerve trying to deal with all the available product that don’t quite solve your problem. That means you need software that will do exactly what it is you want it to do. This is where experience is an advantage for a software development firm. A company with leadership who have solved a variety of problems over the years bring institutional knowledge and wisdom to the table that greatly increase the chances that your new software will be successful. They don’t necessarily have to have already built exactly what you want for someone else, but they may have experience with some of the components and processes you are requesting. Plus, if they’ve been around, it shows that they’ve encountered plenty of problems and been able to come up with solutions.

3) Look For A Strong User Experience Development History

A user-friendly interface is vital to your new software’s success. The backend can function beautifully, but if users can’t figure out how to use it, the software is useless. Make sure the software development company you choose places an emphasis on user experience (UX), which includes rigorous quality assurance (QA) all along the development cycle.

4) They Have A Clear Support Policy

You’re getting a software solution that is being built from scratch, so you need to expect some bugs and quirks upon deployment. Make sure the company you choose gives you a clear picture of what support is included, and how much support that is not included is going to cost.

5) Check Their Work

A good indicator of future success is a rich history of past success. Take time to have them show you custom software development projects they’ve done in the past, explain the process and problems they went through, and, if possible, show you the end result. Not only is this an important step in your due diligence, it will give you peace of mind moving forward that your project is in the right hands.

New Mobile App Developers

As Nashville’s top full-service technology consulting firm, we are proud to recruit the best and brightest in the industry to lead our network infrastructure, custom software development, web design, digital marketing and mobile app development projects.

JJ Rosen, President and CEO, has kept the team focused on the core philosophy of Atiba, “Our mission is to deliver the most customer-centric technology solutions in the marketplace. To effectively execute our mission and connect with our clients we’ve continued to hire the best programmers, engineers, designers and project managers in the business.”

Mobile App Developer PHP C+

Justin Gregory – Software Developer

Justin Gregory, PhD, is a new addition to our software development team.  Since joining Atiba, Justin has developed and deployed the GoVoteTN mobile app on behalf of the Tennessee Secretary of State – a mobile app for the people, by the people. With years of software development experience using C/C++, OOD, Unix, Erlang, Haskell, Labview, Python and more, Justin exemplifies the intelligence and self-motivated nature of Atiba team members. Justin earned a PhD in Interdisciplinary Materials Science from Vanderbilt University and a B.S. in Physics and minor in Computer Science from Lipscomb University.

Mobile App AGILE Project Manager

Mike Presley – Project Manager

Mike Presley, Atiba’s newest Project Manager, is passionate about mobility, apps, interactive design, and improving the overall look and effectiveness of the web.  Mike is dedicated to creating the next generation of web and mobile apps through better user experiences. Mike currently leads projects for  Dollar General, Worship Together, Patient Focus, Hamilton-Ryker and The Pasta Shoppe, to name a few. Mike received a Bachelor of Science from Vanderbilt University.

Mobile App Develpment PHP C+

Bryan Bodkin – Software Developer

Bryan Bodkin is an innovative computer engineer with a unique blend of software programming, project management, and hardware design skills. He recently completed work on www.WorshipTogether.com and Pan Oston projects.  Bryan holds a Masters in Computer Engineering from the University of Tennessee (Knoxville) and a Bachelor of Science Dual Major in Computer Science and Electro Mechanical Engineering Technology from MTSU.

JJ Rosen, Founder and Chairman says, “I am excited for the next decade with our new team members to support the ongoing growth and positioning of Atiba.  We will continue to keep our offerings innovative by hiring team members that are “half geek, half human”, enabling Atiba to demystify technology for clients and help their businesses thrive.”

Nashville Google Fiber

Nashville Google Fiber

Google announced yesterday that they have chosen to expand their Google Fiber gigabit Internet service to Nashville. This is big news for Nashville and all of Middle Tennessee.

Gigabit Internet service translates to connection speeds of 1 Gbps, or 1000 Mbps. This means some user’s speeds will increase up to 100 times faster than their current, basic broadband service.

History has shown that with increased bandwidth comes increased productivity.  As we have moved many of our clients to the cloud over the past few years, bandwidth has become more important than ever.  Connections of this magnitude will change the landscape of what we use and view on our laptops and PDAs. Faster Internet speeds will translate to greater convenience, more flexibility, seamless collaboration, and open the doors to using technology in brand new ways. That equates to gaining efficiencies and building economic growth. All good news for our fair city and surrounding areas!

The city is buzzing with excitement

“It’s exciting to see Nashville recognized as a high opportunity, high growth technology market. The ubiquity of online content and data will affect businesses of all sizes in a positive way.  The future is now even brighter for Nashville.  Atiba is excited to be a part of that growth.” says JJ Rosen, CEO of Atiba.

Mayor Karl Dean added after Google’s announcement, “I am happy to announce that after almost a year of anticipation, Google Fiber is coming to Nashville… There was a lot of competition, and I think they’ve made a very wise choice.”

Google has already successfully launched the service in Provo, Kansas City and Austin. In the second wave of roll-outs, Google will launch the new, subscription-based service in several Nashville neighborhoods beginning in 2015, along with other areas of Atlanta, Raleigh-Durham and Charlotte.

The Atiba Team is excited about the future and embraces Nashville Google Fiber as part of that mix.  We are already exploring ways our clients can leverage this new service. If you have a question or idea of how to leverage gigabit Internet or another service, give us a shout by emailing us at Atiba.Team@atiba.com